Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Devolver 0 en vez de Null en consulta SQL

Estas en el tema de Devolver 0 en vez de Null en consulta SQL en el foro de Mysql en Foros del Web. Buenas tardes, Tengo un problema con una consulta sql; necesito que se sumen dos columnas (carga y cargaverif, de tipo float), pero si una de ...
  #1 (permalink)  
Antiguo 06/02/2007, 08:56
 
Fecha de Ingreso: junio-2005
Mensajes: 79
Antigüedad: 18 años, 10 meses
Puntos: 1
Devolver 0 en vez de Null en consulta SQL

Buenas tardes,

Tengo un problema con una consulta sql; necesito que se sumen dos columnas (carga y cargaverif, de tipo float), pero si una de las dos no devuelve nada me reporta un NULL (haciendo que la suma total devuelva NULL).

select (select sum(carga)
from trabajos
where dxf=1 and estado='EN CURSO' and usuario='userx')
+
(select sum(cargaverif)
from trabajos where
estado='EN VERIFICACION' and verificador='userx')


Alguien sabe como podría hacer para que en el caso de que no haya registros me devuelva un 0 en vez de NULL?

Gracias y un saludo
  #2 (permalink)  
Antiguo 06/02/2007, 10:03
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 22 años, 2 meses
Puntos: 45
Re: Devolver 0 en vez de Null en consulta SQL

modifica el campo de tu tabla y ponlo como NOT NULL, luego aisgnale como valor por defecto 0

Saludos
  #3 (permalink)  
Antiguo 07/02/2007, 12:58
Avatar de deadlykyo  
Fecha de Ingreso: noviembre-2005
Ubicación: Cbba - Bolivia
Mensajes: 747
Antigüedad: 18 años, 5 meses
Puntos: 5
Re: Devolver 0 en vez de Null en consulta SQL

Otra solucion seria, que uses la condicional IFNULL:
SELECT IFNULL( (select sum(carga)
from trabajos
where dxf=1 and estado='EN CURSO' and usuario='userx') , 0)
+
IFNULL( (select sum(cargaverif)
from trabajos where
estado='EN VERIFICACION' and verificador='userx') , 0 )

saludos, cya
__________________
"El Conocimiento es de todos, no solo de algunos"
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 17:47.