Hola buenas.
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:
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
Y lo único que consigo es esto:
Código:
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
Es decir, los meses donde un empleado no tiene datos, no los muestra.
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 originalSELECT
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