Estoy tratando de hacer algunos informes para los registros de tiempo de los empleados.
Tenemos dos tablas específicamente para esta pregunta. Los empleados se enumeran en la Members
tabla y cada día ingresan las entradas de tiempo del trabajo que han realizado y se almacenan en la Time_Entry
tabla.
Ejemplo de configuración con SQL Fiddle: http://sqlfiddle.com/#!3/e3806/7
El resultado final voy a es una tabla que muestra TODOS los Members
de una lista de columnas y luego mostrarán sus horas de suma de la fecha consultada en las otras columnas.
El problema parece ser que si no hay una fila en la Time_Entry
tabla para un miembro en particular, ahora hay una fila para ese miembro. He probado varios tipos de unión diferentes (izquierda, derecha, interior, exterior, exterior completo, etc.) pero ninguno parece darme lo que quiero, que sería (basado en el último ejemplo en SQL Fiddle):
/*** Desired End Result ***/
Member_ID | COUNTTime_Entry | TIMEENTRYDATE | SUMHOURS_ACTUAL | SUMHOURS_BILL
ADavis | 0 | 11-10-2013 | 0 | 0
BTronton | 0 | 11-10-2013 | 0 | 0
CJones | 0 | 11-10-2013 | 0 | 0
DSmith | 0 | 11-10-2013 | 0 | 0
EGirsch | 1 | 11-10-2013 | 0.92 | 1
FRowden | 0 | 11-10-2013 | 0 | 0
Lo que obtengo actualmente cuando consulto la fecha específica del 11-1:
Member_ID | COUNTTime_Entry | TIMEENTRYDATE | SUMHOURS_ACTUAL | SUMHOURS_BILL
EGirsch | 1 | 11-10-2013 | 0.92 | 1
Lo cual es correcto en función de la fila de entrada de tiempo con fecha 10-10-2013 para EGirsch, pero necesito ver ceros para los otros miembros para obtener informes y, finalmente, un tablero web / informe para esta información.
Esta es mi primera pregunta, y aunque busqué consultas de combinación, etc. Honestamente, no estoy seguro de cómo podría llamarse esta función, así que espero que esto no sea un duplicado y ayude a otros a tratar de encontrar una solución para problemas similares
WHERE
yAND
. Originalmente había usado alias, pero a sqlfiddle no parecía gustarle, así que solo tomé el formato completo. Gracias por los otros consejos SQL también. ¿RecomendaríaISNULL
oCOALESCE
hacer que los datos sean 0 en lugar deNULL
? ¡Gracias de nuevo!