Seguramente esto te sucede porq "l.precio" está NULL.
Cita:
Empezado por gmontes
tengo la version firebird 2.1
al hacer un update en ibexpert
update cinve c set c.precio1 = (select l.precio from tlista_precios l where c.codigo=l.codigo and l.lista=1)
los campos en que no coincide c.codigo=l.codigo me los pone en null y se pierde el valor
es decir
tabla cinve
codigo/ precio1
102 10
103 0
104 20
tabla tlista_precios
codigo/ precio/ lista
103 50 1
despues del update la tabla cinve queda
codigo/ precio1
102 null
103 50
104 null
que estoy haciendo mal??
|
Para estos casos usa COALESCE
Código SQL
[-]SELECT COALESCE(MAX( s.sal_consec ),0)
FROM salida s
WHERE s.almacen_id=:v_alm_origen
AND s.articulo_id=:v_art_id
Los campos nulos, los deja en 0 "COALESCE( campo,0)" el 0 se sustituye por nulo.
Código SQL
[-]update cinve c set c.precio1 = (select COALESCE(l.precio,0) from tlista_precios l where c.codigo=l.codigo and l.lista=1)