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

[SOLUCIONADO] Listar campos vacios

Estas en el tema de Listar campos vacios en el foro de Mysql en Foros del Web. Hola a todos como están veran tengo una consulta en la cual me debería dar un formato como el siguiente @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código EXCEL: Ver ...
  #1 (permalink)  
Antiguo 23/04/2016, 15:19
 
Fecha de Ingreso: abril-2015
Mensajes: 304
Antigüedad: 9 años
Puntos: 2
Listar campos vacios

Hola a todos como están veran tengo una consulta en la cual me debería dar un formato como el siguiente
Código EXCEL:
Ver original
  1. Fecha Meta  Usuario Unidad de Negocio   Monto Meta  Monto Venta Real
  2. 01/01/2016  Sandro Davila   DO   S/. 65,000.00   S/. 25,000.00
  3. 01/02/2016  Sandro Davila   DO   S/. 85,000.00   S/. 45,000.00
  4. 01/03/2016  Sandro Davila   DO   S/. 3,000.00    S/. 25,000.00
  5. 01/04/2016  Sandro Davila   DO   S/. 15,000.00   S/. 10,000.00
  6. 01/05/2016  Sandro Davila   DO   S/. 32,000.00   S/. 0.00
  7. 01/06/2016  Sandro Davila   DO   S/. 90,000.00   S/. 0.00
  8. 01/07/2016  Sandro Davila   DO   S/. 6,300.00    S/. 0.00
  9. 01/08/2016  Sandro Davila   DO   S/. 4,500.00    S/. 0.00
  10. 01/09/2016  Sandro Davila   DO   S/. 32,000.00   S/. 0.00
  11. 01/10/2016  Sandro Davila   DO   S/. 9,000.00    S/. 0.00
  12. 01/11/2016  Sandro Davila   DO   S/. 45,000.00   S/. 0.00
  13. 01/12/2016  Sandro Davila   DO   S/. 65,000.00   S/. 0.00
Pues bien para ello hice la siguiente consulta pero solo me muestra la suma de los meses que contienen información obviamente para el resto de meses aun no hay informacion y por lo tanto debería mostrarme en blanco
Código MySQL:
Ver original
  1. SELECT CONCAT(us.jc_usuario_nombre,' ',us.jc_usuario_apellidos) AS Responsable,mtd.jc_metas_fecha,mtd.jc_metas_monto,SUM(sg.seg_valor_venta) As venta_real,
  2. sg.seg_fecha_ultimo_contac
  3. FROM metas mt
  4. INNER JOIN usuarios_crm us ON mt.jc_usuario_id = us.jc_usuario_id
  5. LEFT JOIN metas_detalles mtd ON mt.jc_meta_id = mtd.jc_meta_id
  6. LEFT JOIN seg_comercial sg ON mt.jc_usuario_id = sg.jc_usuario_id
  7. WHERE mtd.jc_unidad_negocio_id = 1 AND sg.seg_fecha_ultimo_contac >= '2016-01-01'
  8. AND sg.seg_fecha_ultimo_contac < '2017-01-01' AND sg.seg_estatus_id = 3 AND sg.jc_usuario_id = 2 AND sg.jc_unidad_negocio_id = 1
  9. AND MONTH(sg.seg_fecha_ultimo_contac) = MONTH(mtd.jc_metas_fecha)
  10. GROUP BY YEAR(sg.seg_fecha_ultimo_contac), MONTH(sg.seg_fecha_ultimo_contac)
alguien me puede ayudar con esta consulta por favorrrr
  #2 (permalink)  
Antiguo 24/04/2016, 10:07
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Listar campos vacios

Como ya se ha explicado muchas veces en el foro, no puedes obtener resultados de datos inexistentes, ahora lo que podrias hacer es crear una tabla con todos los meses de de cada año y hacer un left join con tu tabla de resultados, asi en los meses donde el resultado sea null pones un 0 o lo que ocupes :P
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 25/04/2016, 15:37
 
Fecha de Ingreso: abril-2015
Mensajes: 304
Antigüedad: 9 años
Puntos: 2
Respuesta: Listar campos vacios

Al final lo resolví de la siguiente manera
Código MySQL:
Ver original
  1. SELECT CONCAT(us.jc_usuario_nombre,' ',us.jc_usuario_apellidos) AS Responsable,
  2. mtd.jc_metas_fecha,
  3. mtd.jc_metas_monto,
  4. SUM(sg.seg_valor_venta) AS venta_real
  5.  
  6. FROM metas mt
  7. INNER JOIN metas_detalles mtd ON mtd.jc_meta_id = mt.jc_meta_id
  8. INNER JOIN usuarios_crm us ON us.jc_usuario_id = mt.jc_usuario_id
  9. LEFT JOIN seg_comercial sg ON sg.jc_usuario_id = mt.jc_usuario_id AND sg.jc_unidad_negocio_id=mtd.jc_unidad_negocio_id
  10. AND MONTH(sg.seg_fecha_ultimo_contac) = MONTH(mtd.jc_metas_fecha) AND YEAR(sg.seg_fecha_ultimo_contac) = YEAR(mtd.jc_metas_fecha)
  11. AND sg.seg_estatus_id = 3
  12.  
  13. WHERE mtd.jc_unidad_negocio_id = 1 AND YEAR(mtd.jc_metas_fecha) = 2016 AND mt.jc_usuario_id = 2
  14.  
  15. GROUP BY YEAR(mtd.jc_metas_fecha),MONTH(mtd.jc_metas_fecha)
pues un amigo me ayudo y ordeno mi consulta asi como tambien me enseño algo que nunca habia visto que es usar AND dentro de un LEFT de todas formas Gracias

Etiquetas: campos, fecha, join, select, vacios
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 04:39.