Delphi - PROBLEMAS CON INNER JOIN

 
Vista:

PROBLEMAS CON INNER JOIN

Publicado por joanalgue (2 intervenciones) el 07/08/2001 14:03:08
Tengo problemas en DELPHI al utilizar la orden UPDATE tabla1 INNER JOIN Tabla2 ON ... en un TQuery.
En principio debería funcionar, pero me da un error Incorrect Syntax Near.
Por favor, indicarme que puedo hacer. Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:PROBLEMAS CON INNER JOIN

Publicado por Ernesto D'Spirito (706 intervenciones) el 07/08/2001 16:27:52
La BDE no soporta INNER JOIN con la sentencia UPDATE de SQL. Sin embargo se pueden usar subconsultas para actualizar los datos de una tabla con los datos que provienen de otra (u otras). Fíjate en la ayuda del tema "UPDATE sentence" en el archivo de ayuda de Local SQL para que veas un ejemplo.

Si necesitas más ayuda publica en el foro la sentencia SQL completa usando INNER JOIN para ver si por lo menos te podemos acercar a la forma correcta.

Ernesto
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:PROBLEMAS CON INNER JOIN

Publicado por Ernesto D'Spirito (706 intervenciones) el 07/08/2001 16:58:13
Te he hecho un pequeño ejemplo que tal vez te ayude.

Suponiendo que se desea actualizar los campos ShipToAddr1 y ShipToAddr2 de la tabla Orders con los valores de los campos Addr1 y Addr2 respectivamente de la tabla Customer, para aquellos registros de Orders que tienen ambos campos en blanco, me imagino que la forma en que lo plantearías sería así:

UPDATE orders INNER JOIN customer
ON customer.custno = orders.custno
SET orders.ShipToAddr1 = customer.Addr1,
orders.ShipToAddr2 = customer.Addr2
WHERE orders.ShipToAddr1 = "" AND orders.ShipToAddr2 = ""

Con el Local SQL de la BDE, la forma correcta de hacerlo es así:

UPDATE orders
SET ShipToAddr1 = (SELECT Addr1 FROM customer WHERE
customer.custno = orders.custno),
ShipToAddr2 = (SELECT Addr2 FROM customer WHERE
customer.custno = orders.custno)
WHERE ShipToAddr1 = "" AND ShipToAddr2 = ""

Espero que te sirva.

Ernesto
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:PROBLEMAS CON INNER JOIN

Publicado por joanalgue (2 intervenciones) el 07/08/2001 17:36:51
Gracias Ernesto
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar