FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Consulta devuelve null
Buenos dias.
Tengo la siguiente consulta con la que quiero obtener el ultimo precio de compra UPC y el ultimo precio de venta UPV y el margen a ultimo precio, que sera la resta del UPV - UPC. La consulta funciona perfectamente, el problema es que si no ha habido ninguna compra me devuelve null, en UPC y UPV, cuando lo que quiero es que me devuelva 0 en UPC y en UPV el precio y no NULL como hace, aunque si que tiene movimiento. pongo aqui la consulta SQL. Estoy usando firebird 2.5
Gracias y un saludo. |
#2
|
||||
|
||||
Usa coalesce también.
Aunque lo ideal es no tener campos con valores nulos, "not null default 0" |
#3
|
||||
|
||||
Si la consulta la haces sobre albaprovelineas y si esta tabla no tiene lineas no te devolverá ningun registro, por lo tanto obtienes valores NULOS en todos los campos. Me imagino que eso es lo que te está pasando.
Tal vez deberías utilizar un CASE, para determinar cuando hay o no registros en la tabla de compras y hacer algo diferente.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#4
|
|||
|
|||
Cita:
Todos los campos numéricos están como not null y default 0, por lo que no hay ningún campo numérico a null. El problema es que la primera sentencia, la del UPC, no devuelve ningún resultado, pues no hay ninguna compra de este producto, y me devuelve toda la sentencia a null. Me gustaría saber si tiene arreglo con este tipo de consulta, y no buscar otra solución, como hacerlo en un procedimiento almacenado, p.e. Gracias. |
#5
|
|||
|
|||
Hola Neftali.
Si, era por ver, si había alguna solución, que se me había pasado, en este caso utilizar el CASE para ver si la compra tiene movimientos, lo veo lioso para después darle mantenimiento, prefiero un Procedimento o un Execute block. Gracias y un saludo. |
#6
|
||||
|
||||
Cita:
|
#7
|
|||
|
|||
Pues
devuelve null. ( articulo_id = 978798878 no existe ) También devuelve null Última edición por Casimiro Notevi fecha: 21-05-2020 a las 12:43:56. |
#8
|
||||
|
||||
Cierto, has dicho que no hay null, lo había olvidado.
|
#9
|
||||
|
||||
Creo que lo mejor es que hagas un procedimiento almacenado que devuelva cero en caso de nulo.
|
#10
|
|||
|
|||
Hola
O se podría hacer algo "menos complejo"...
Saludos
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Consulta SQL devuelve registros duplicados | Malau | SQL | 5 | 26-05-2011 02:47:50 |
Realizar una consulta sobre los registros que devuelve otra consulta | Borjaserrano | Firebird e Interbase | 12 | 01-10-2007 23:19:44 |
Consulta con TIMESTAMP no devuelve nada | subzero | Firebird e Interbase | 10 | 12-09-2007 04:51:06 |
Saber si una consulta no devuelve datos | rafita | SQL | 4 | 18-09-2006 10:00:26 |
Limitar los registros que devuelve una consulta | roman | Conexión con bases de datos | 1 | 03-09-2004 09:08:45 |
|