Primero tengo 4 tablas que son:
Usuario:
en donde estan 3 campos sesion, nombre y grupo.
Estado con 2 campos
el campo de estado que es int y el nombre de estado que es varchar.
Detalle_estado:
esta referencia la sesion de usuario y estado, fecha de inicio y fecha de fin.
Hora:
hace referencia sesion de usuario y estado , ingreso , salida.
Mi consulta es esta.
Cita:
pero el resultado me sale 2 resultados uno que sale el correcto resultado el estado, sesion, nombre etc.. y otro donde sale el estado pero null y luego sesion, nombre etc...SELECT IF(hora.sesion=detalle_estado.sesion AND DATE(ingreso)>=fec_ini AND DATE(ingreso)<=fec_fin,detalle_estado.estado,NULL) AS 'Estado',usuario.sesion,nombre,ingreso,CONCAT(DAY( ingreso),' de ') AS 'ingresod',
CASE MONTH(ingreso)
WHEN 1 THEN 'Enero'
WHEN 2 THEN 'Febero'
WHEN 3 THEN 'Marzo'
WHEN 4 THEN 'Abril'
WHEN 5 THEN 'Mayo'
WHEN 6 THEN 'Junio'
WHEN 7 THEN 'Julio'
WHEN 8 THEN 'Agosto'
WHEN 9 THEN 'Setiembre'
WHEN 10 THEN 'Octubre'
WHEN 11 THEN 'Noviembre'
WHEN 12 THEN 'Diciembre'
END AS 'Ingresom'
,YEAR(ingreso) AS ingresoa,IF(TIME(ingreso)='00:00:00',NULL,TIME(ing reso)) AS 'ingresot', IF (TIME(ingreso)>'09:04:59',(SUBTIME(TIME(ingreso),' 09:04:59')),NULL) AS 'tardanza', IF (TIME(ingreso)='00:00:00','00:00:00',NULL) AS 'falta' FROM hora
JOIN usuario ON usuario.sesion=hora.sesion
JOIN estado ON estado.estado=hora.estado
LEFT JOIN detalle_estado ON detalle_estado.sesion=hora.sesion
ORDER BY ingreso;
CASE MONTH(ingreso)
WHEN 1 THEN 'Enero'
WHEN 2 THEN 'Febero'
WHEN 3 THEN 'Marzo'
WHEN 4 THEN 'Abril'
WHEN 5 THEN 'Mayo'
WHEN 6 THEN 'Junio'
WHEN 7 THEN 'Julio'
WHEN 8 THEN 'Agosto'
WHEN 9 THEN 'Setiembre'
WHEN 10 THEN 'Octubre'
WHEN 11 THEN 'Noviembre'
WHEN 12 THEN 'Diciembre'
END AS 'Ingresom'
,YEAR(ingreso) AS ingresoa,IF(TIME(ingreso)='00:00:00',NULL,TIME(ing reso)) AS 'ingresot', IF (TIME(ingreso)>'09:04:59',(SUBTIME(TIME(ingreso),' 09:04:59')),NULL) AS 'tardanza', IF (TIME(ingreso)='00:00:00','00:00:00',NULL) AS 'falta' FROM hora
JOIN usuario ON usuario.sesion=hora.sesion
JOIN estado ON estado.estado=hora.estado
LEFT JOIN detalle_estado ON detalle_estado.sesion=hora.sesion
ORDER BY ingreso;
de antemano gracias.
pd: en el quote separa ingreso en ing reso en el segundo if grx