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

consulta con valores NULL convertidos a CERO

Estas en el tema de consulta con valores NULL convertidos a CERO en el foro de Mysql en Foros del Web. Buenas, puede alguien decirme como se puede realizar una consulta que cuando el resultado contenga campos NULL los convierta en CEROS? hago una consulta a ...
  #1 (permalink)  
Antiguo 25/03/2010, 11:29
 
Fecha de Ingreso: julio-2009
Mensajes: 90
Antigüedad: 15 años, 3 meses
Puntos: 4
Pregunta consulta con valores NULL convertidos a CERO

Buenas, puede alguien decirme como se puede realizar una consulta que cuando el resultado contenga campos NULL los convierta en CEROS?

hago una consulta a una tabla con un left join a otra tabla que no siempre contiene coincidencias, por lo que me gustaria que el resultado en vez de tener null tuviera 0 en sus campos.

Esta es mi consulta:

Código MySQL:
Ver original
  1. sc.id_interno,
  2. sc.vehiculo,
  3. sc.fecha,
  4. sc.bitacora,
  5. sc.kms,
  6. sc.ok,
  7. sc.fecha_ok,
  8. sc.vb,
  9. sc.fecha_vb,
  10. sc.movimiento,
  11. sc.vale,
  12. sc.ot,
  13. sc.posiciones,
  14. v.sal_ok AS recibio,
  15. v.ent_ok AS entrego
  16. FROM solicitud_cambio AS sc
  17. LEFT JOIN detalle_vales AS v ON v.id_solicitud=sc.id_interno
  18. WHERE ok = 0 OR vb = 0 OR v.sal_ok=0 OR v.ent_ok=0
  19. GROUP BY sc.id_interno
  20. ORDER BY sc.fecha DESC;

Se puede?

cualquier luz será agradecida
  #2 (permalink)  
Antiguo 25/03/2010, 11:44
 
Fecha de Ingreso: enero-2010
Ubicación: Estelí, Nicaragua
Mensajes: 157
Antigüedad: 14 años, 10 meses
Puntos: 8
Respuesta: consulta con valores NULL convertidos a CERO

puedes probar

Código MySQL:
Ver original
  1. if(v.sal_ok AS recibio is null,0,v.sal_ok AS recibio)

comentas....
  #3 (permalink)  
Antiguo 25/03/2010, 11:52
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: consulta con valores NULL convertidos a CERO

IFNULL() es más simple:
Código MySQL:
Ver original
  1.   sc.id_interno,
  2.   sc.vehiculo,
  3.   sc.fecha,
  4.   sc.bitacora,
  5.   sc.kms,
  6.   sc.ok,
  7.   sc.fecha_ok,
  8.   sc.vb,
  9.   sc.fecha_vb,
  10.   IFNULL(sc.movimiento,0),
  11.   IFNULL(sc.vale, 0) ,
  12.   IFNULL(sc.ot, 0) ,
  13.   IFNULL(sc.posiciones, 0) ,
  14.   IFNULL(v.sal_ok , 0) recibio,
  15.   IFNULL(v.ent_ok , 0) entrego
  16. FROM solicitud_cambio sc LEFT JOIN detalle_vales v ON v.id_solicitud=sc.id_interno
  17. WHERE ok = 0 OR vb = 0 OR v.sal_ok=0 OR v.ent_ok=0
  18. GROUP BY sc.id_interno
  19. ORDER BY sc.fecha DESC;
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #4 (permalink)  
Antiguo 25/03/2010, 13:13
 
Fecha de Ingreso: agosto-2009
Mensajes: 44
Antigüedad: 15 años, 3 meses
Puntos: 1
Respuesta: consulta con valores NULL convertidos a CERO

que tal, es una buena solucion, pero tmb lo puedes intentar hacer con COALESCE, busca la sintaxis en el manual, te sustituye los null, por lo que tu le digas

saludos
  #5 (permalink)  
Antiguo 25/03/2010, 13:52
 
Fecha de Ingreso: julio-2009
Mensajes: 90
Antigüedad: 15 años, 3 meses
Puntos: 4
Respuesta: consulta con valores NULL convertidos a CERO

Muchísimas gracias, esto me resuelve varios problemas que tenia, al final mi consulta quedó así:

Código MySQL:
Ver original
  1. sc.id_interno,
  2. sc.vehiculo,
  3. sc.fecha,
  4. sc.bitacora,
  5. sc.kms,
  6. sc.ok,
  7. sc.fecha_ok,
  8. sc.vb,
  9. sc.fecha_vb,
  10. sc.movimiento,
  11. sc.vale,
  12. sc.ot,
  13. sc.posiciones,
  14. COALESCE(v.sal_ok,0) AS recibio,
  15. COALESCE(v.ent_ok,0) AS entrego
  16. FROM solicitud_cambio AS sc
  17. LEFT JOIN detalle_vales AS v ON v.id_solicitud=sc.id_interno
  18. WHERE ok = 0 OR vb = 0 OR v.sal_ok=0 OR v.ent_ok=0
  19. GROUP BY sc.id_interno
  20. ORDER BY sc.fecha DESC;

Etiquetas: cero, consulta, null
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.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:58.