Estoy intentando realizar una consulta pero no consigo que se muestre lo que quiero.
La consulta que quiero sacar es un listado por meses y por empleados. Y consigo hacerla, pero los meses donde un empleado no tiene , no me muestra nada, y lo que yo quiero es que me muestre todos los meses y todos los empleados.
Yo quiero conseguir un resultado así:
Código:
Y lo único que consigo es esto:Abril 8 Juan Abril 0 Marcela Abril 0 Jose Antonio Julio 0 Juan Julio 1 Marcela Julio 0 Jose Antonio Agosto 0 Juan Agosto 1 Marcela Agosto 1 Jose Antonio Septiembre 0 Juan Septiembre 1 Marcela Septiembre 1 Jose Antonio Octubre 0 Juan Octubre 2 Marcela Octubre 0 Jose Antonio Noviembre 3 Juan Noviembre 19 Marcela Noviembre 5 Jose Antonio Diciembre 0 Juan Diciembre 4 Marcela Diciembre 4 Jose Antonio Febrero 0 Juan Febrero 2 Marcela Febrero 0 Jose Antonio
Código:
Es decir, los meses donde un empleado no tiene datos, no los muestra.Abril 8 Juan Julio 1 Marcela Agosto 1 Jose Antonio Agosto 1 Marcela Septiembre 1 Jose Antonio Septiembre 1 Marcela Octubre 2 Marcela Noviembre 5 Jose Antonio Noviembre 19 Marcela Diciembre 4 Marcela Febrero 2 Marcela
La consulta la hago relacionando 3 tablas, una con los datos principales, otra que hace de conexión entre la principal y la de empleados con un campo más de fecha, y la de empleados, de modo que la sql me queda de éste modo:
Código SQL:
Ver original
SELECT CASE WHEN MONTH(f_encargo) = 1 THEN 'Enero' WHEN MONTH(f_encargo) = 2 THEN 'Febrero' WHEN MONTH(f_encargo) = 3 THEN 'Marzo' WHEN MONTH(f_encargo) = 4 THEN 'Abril' WHEN MONTH(f_encargo) = 5 THEN 'Mayo' WHEN MONTH(f_encargo) = 6 THEN 'Junio' WHEN MONTH(f_encargo) = 7 THEN 'Julio' WHEN MONTH(f_encargo) = 8 THEN 'Agosto' WHEN MONTH(f_encargo) = 9 THEN 'Septiembre' WHEN MONTH(f_encargo) = 10 THEN 'Octubre' WHEN MONTH(f_encargo) = 11 THEN 'Noviembre' WHEN MONTH(f_encargo) = 12 THEN 'Diciembre' ELSE 'No Mes' END AS Meses , IFNULL(COUNT(v.REF), 0) AS Total, emv.Nombre FROM ventas AS v RIGHT JOIN ventas_usuario AS vent ON v.REF = vent.REF RIGHT JOIN empleados AS emp ON vent.id_usu = emp .id_emp WHERE emp .id_emp = (SELECT id_usu FROM ventas_usuario WHERE REF = v.REF ORDER BY fecha DESC LIMIT 0, 1) GROUP BY YEAR(f_encargo), MONTH(f_encargo), emp .Nombre
A ver si me podéis echar un cable.
Muchas gracias