Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Consulta de actualización (https://www.clubdelphi.com/foros/showthread.php?t=74706)

newtron 06-07-2011 09:15:38

Consulta de actualización
 
Hola amiguetes. Ahora me toca preguntar a mi.

Tengo dos tablas:

Código:

LOTES

CODIGO    ARTICULO                EXIST
000001      01                            10
000002      01                            15
000003      01                            20

LINEAS

CODIGO    ARTICULO                CANTIDAD
000001      01                            5
000001      01                            3
000002      01                            10

y esta consulta tontaca:

Código:

UPDATE LOTES
SET EXIST=EXIST+SELECT SUM(CANTIDAD) FROM LINEAS WHERE
LOTES.CODIGO=LINEAS.CODIGO AND LOTES.ARTICULO=LINEAS.ARTICULO

resulta que ejecuto la consulta y la tabla queda así:

Código:

LOTES

CODIGO    ARTICULO                EXIST
000001      01                            18
000002      01                            25
000003      01                            NULL

y yo pregunto. ¿Es normal que el registro con el código '000003' quede con valor NULL en el campo EXIST? esto pasa porque no devuelve ningún valor de la consulta. Yo lo que quiero es que me quede con el valor original del campo que sería 20 en este caso.

Gracias y un saludo

gluglu 06-07-2011 09:30:10

Código SQL [-]
Update LOTES
Set EXIST = EXIST + (Select Sum(CANTIDAD) from LINEAS where
LOTES.CODIGO = LINEAS.CODIGO and LOTES.ARTICULO = LINEAS.ARTICULO)
where (Select Sum(CANTIDAD) from LINEAS where
LOTES.CODIGO = LINEAS.CODIGO and LOTES.ARTICULO = LINEAS.ARTICULO) <> 0

gluglu 06-07-2011 09:31:30

.... o también, y creo que casi mejor ....

Código SQL [-]
Update LOTES
Set EXIST = EXIST + (Select Coalesce(Sum(CANTIDAD), 0) from LINEAS where
LOTES.CODIGO = LINEAS.CODIGO and LOTES.ARTICULO = LINEAS.ARTICULO)

newtron 06-07-2011 10:20:52

Gracias paisano, funciona estupendamente. :)


La franja horaria es GMT +2. Ahora son las 16:27:48.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi