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

Query sin datos

Estas en el tema de Query sin datos en el foro de Mysql en Foros del Web. Que tal amigos como están todos, necesito su ayuda urgente por favor, mi problema es que tengo el siguiente query: SELECT empleadosups.`Id_empleado` AS empleados_Id_empleado, solicitud_viatups.`Folio` ...
  #1 (permalink)  
Antiguo 03/08/2009, 09:26
 
Fecha de Ingreso: abril-2009
Mensajes: 78
Antigüedad: 15 años
Puntos: 0
Query sin datos

Que tal amigos como están todos, necesito su ayuda urgente por favor, mi problema es que tengo el siguiente query:

SELECT
empleadosups.`Id_empleado` AS empleados_Id_empleado,
solicitud_viatups.`Folio` AS solicitud_viat_Folio,
solicitud_viatups.`Imp_autorizado` AS solicitud_viat_Imp_autorizado,
transferenciasups.`Cantidad` AS transferencias_Cantidad,
justif_gastosups.`Total` AS justif_gastos_Total,
justif_gastosups.`Total`-solicitud_viatups.`Imp_autorizado`-transferenciasups.`Cantidad` AS saldo
FROM
`transferups` transferenciasups INNER JOIN `empleadosups` empleadosups ON transferenciasups.`Id_empleado` = empleadosups.`Id_empleado`
INNER JOIN `solicitud_viatups` solicitud_viatups ON empleadosups.`Id_empleado` = solicitud_viatups.`Id_empleado`
INNER JOIN `justif_gastosups` justif_gastosups ON empleadosups.`Id_empleado` = justif_gastosups.`Id_empleado`

where solicitud_viatups.`Id_empleado`=316
and justif_gastosups.`Folio`=solicitud_viatups.`Folio`
and transferenciasups.`Folio`=solicitud_viatups.`Folio `

y funciona muy bien, pero solo funciona cuando se tienen todos los datos de todas las tablas, lo que yo quiero es me salga aunque algunas veces no tenga datos alguna de las tablas, por ejemplo que teniendo datos en solicitud_viatups.`Folio` y en justif_gastosups.`Total`me arroje los resultados, aunque no tenga datos en transferenciasups.`Cantidad`yo intenté con lo siguiente:

SELECT
empleadosups.`Id_empleado` AS empleados_Id_empleado,
solicitud_viatups.`Folio` AS solicitud_viat_Folio,
ifnull (solicitud_viatups.`Imp_autorizado` AS solicitud_viat_Imp_autorizado,0),
ifnull (transferenciasups.`Cantidad` AS transferencias_Cantidad,0),
ifnull (justif_gastosups.`Total` AS justif_gastos_Total,0),
justif_gastosups.`Total`-solicitud_viatups.`Imp_autorizado`-transferenciasups.`Cantidad` AS saldo
FROM
`transferups` transferenciasups INNER JOIN `empleadosups` empleadosups ON transferenciasups.`Id_empleado` = empleadosups.`Id_empleado`
INNER JOIN `solicitud_viatups` solicitud_viatups ON empleadosups.`Id_empleado` = solicitud_viatups.`Id_empleado`
INNER JOIN `justif_gastosups` justif_gastosups ON empleadosups.`Id_empleado` = justif_gastosups.`Id_empleado`

where solicitud_viatups.`Id_empleado`=316
and justif_gastosups.`Folio`=solicitud_viatups.`Folio`
and transferenciasups.`Folio`=solicitud_viatups.`Folio `

pero no se que esté mal ya que me dice que la funcion ifnull no existe me podrían ayudar? tengo la version 5.0 de mysql por si tiene algo que ver
Gracias a todos y saludos
  #2 (permalink)  
Antiguo 03/08/2009, 10:52
 
Fecha de Ingreso: octubre-2008
Ubicación: Xalapa, Ver
Mensajes: 27
Antigüedad: 15 años, 6 meses
Puntos: 2
Respuesta: Query sin datos

puedes utilizar un left join
  #3 (permalink)  
Antiguo 03/08/2009, 11:14
 
Fecha de Ingreso: abril-2009
Mensajes: 78
Antigüedad: 15 años
Puntos: 0
Respuesta: Query sin datos

Cita:
Iniciado por jeflores02 Ver Mensaje
puedes utilizar un left join

Disculpame pero estoy aprendiendo esto, podrías darme un ejemplo o decirme mas o menos como sería y te agradezco mucho tu ayuda
  #4 (permalink)  
Antiguo 03/08/2009, 11:24
 
Fecha de Ingreso: octubre-2008
Ubicación: Xalapa, Ver
Mensajes: 27
Antigüedad: 15 años, 6 meses
Puntos: 2
Respuesta: Query sin datos

checa este link aqui te explica http : / /www . alvherre.cl /pgsql/ charlas / 01-OuterJoin.pdf
quita los espacios en blanco
  #5 (permalink)  
Antiguo 03/08/2009, 13:17
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Query sin datos

Cita:
Iniciado por jorgelo82 Ver Mensaje
Disculpame pero estoy aprendiendo esto, podrías darme un ejemplo o decirme mas o menos como sería y te agradezco mucho tu ayuda
Mas o menos...
Código sql:
Ver original
  1. SELECT
  2.     empleadosups.`Id_empleado` AS empleados_Id_empleado,
  3.     solicitud_viatups.`Folio` AS solicitud_viat_Folio,
  4.     ifnull (solicitud_viatups.`Imp_autorizado` AS solicitud_viat_Imp_autorizado,0),
  5.     ifnull (transferenciasups.`Cantidad` AS transferencias_Cantidad,0),
  6.     ifnull (justif_gastosups.`Total` AS justif_gastos_Total,0),
  7.     justif_gastosups.`Total`-solicitud_viatups.`Imp_autorizado`-    transferenciasups.`Cantidad` AS saldo
  8. FROM empleadosups empleadosups  LEFT JOIN
  9.     `transferups` transferenciasups ON transferenciasups.`Id_empleado` = empleadosups.`Id_empleado`
  10. LEFT JOIN `solicitud_viatups` solicitud_viatups ON empleadosups.`Id_empleado` = solicitud_viatups.`Id_empleado`
  11. LEFT JOIN `justif_gastosups` justif_gastosups ON empleadosups.`Id_empleado` = justif_gastosups.`Id_empleado`
  12.  
  13. WHERE solicitud_viatups.`Id_empleado`=316
  14.     AND justif_gastosups.`Folio`=solicitud_viatups.`Folio`
  15.     AND transferenciasups.`Folio`=solicitud_viatups.`Folio `
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 03/08/2009 a las 20:41
  #6 (permalink)  
Antiguo 03/08/2009, 13:28
 
Fecha de Ingreso: octubre-2008
Ubicación: Xalapa, Ver
Mensajes: 27
Antigüedad: 15 años, 6 meses
Puntos: 2
Respuesta: Query sin datos

si, ahora quita lo de la funcion ifnull

solicitud_viatups.`Folio` AS solicitud_viat_Folio,
solicitud_viatups.`Imp_autorizado` AS solicitud_viat_Imp_autorizado,
transferenciasups.`Cantidad` AS transferencias_Cantidad,
  #7 (permalink)  
Antiguo 03/08/2009, 13:32
 
Fecha de Ingreso: abril-2009
Mensajes: 78
Antigüedad: 15 años
Puntos: 0
Respuesta: Query sin datos

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Mas o menos...
Código sql:
Ver original
  1. SELECT
  2.     empleadosups.`Id_empleado` AS empleados_Id_empleado,
  3.     solicitud_viatups.`Folio` AS solicitud_viat_Folio,
  4.     ifnull (solicitud_viatups.`Imp_autorizado` AS solicitud_viat_Imp_autorizado,0),
  5.     ifnull (transferenciasups.`Cantidad` AS transferencias_Cantidad,0),
  6.     ifnull (justif_gastosups.`Total` AS justif_gastos_Total,0),
  7.     justif_gastosups.`Total`-solicitud_viatups.`Imp_autorizado`-    transferenciasups.`Cantidad` AS saldo
  8. FROM empleadosups` empleadosups  LEFT JOIN
  9.    `transferups` transferenciasups ON transferenciasups.`Id_empleado` = empleadosups.`Id_empleado`
  10. LEFT JOIN `solicitud_viatups` solicitud_viatups ON empleadosups.`Id_empleado` = solicitud_viatups.`Id_empleado`
  11. LEFT JOIN `justif_gastosups` justif_gastosups ON empleadosups.`Id_empleado` = justif_gastosups.`Id_empleado`
  12.  
  13. WHERE solicitud_viatups.`Id_empleado`=316
  14.    and justif_gastosups.`Folio`=solicitud_viatups.`Folio`
  15.    and transferenciasups.`Folio`=solicitud_viatups.`Folio `
Disculpa, una pregunta, este era un ejemplo?
Porque lo copié y lo pegué y me salió este error:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'transferups` transferenciasups ON transferenciasups.`Id_empleado` = empleadosups' at line 8 y como no le entiendo muy bien a esto de los Left Join no se si se trató de un ejemplo y lo tengo que adaptar bien

Gracias
  #8 (permalink)  
Antiguo 03/08/2009, 13:48
 
Fecha de Ingreso: abril-2009
Mensajes: 78
Antigüedad: 15 años
Puntos: 0
Respuesta: Query sin datos

Ya quité lo de ifnull y me sigue saliendo el mismo error que comenté en el mensaje anterior
  #9 (permalink)  
Antiguo 03/08/2009, 20:39
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Query sin datos

Se supone que ese era TU ejemplo.
Lo únco que yo hice es suplantar los INNER JOIN por LEFT JOIN y dar vuelva las dos primeras tablas, suponiendo que la tabla que siempre tendrá datos es la empleadosups.
Si hay errores de sintaxis pueden ser por el Copy + Paste... Pero en todo caso eso lo puedes comprobar tu mismo. ¿No es así?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #10 (permalink)  
Antiguo 04/08/2009, 10:41
 
Fecha de Ingreso: abril-2009
Mensajes: 78
Antigüedad: 15 años
Puntos: 0
Respuesta: Query sin datos

Gracias les agradezco mucho a todos los que me brindaron su ayuda, pero de hecho lo resolví de otra forma, realicé funciones para que me regresara el valor del campo como cero en vez de null que es lo que estaba haciendo con el left join me regresaba null, así que gracias de todas formas a todos y luego pongo la manera de resolverlo por si le sirve a alguien
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 14:34.