Estou tentando obter alguns relatórios para registros de horas dos funcionários.
Temos duas tabelas especificamente para esta pergunta. Os funcionários são listados na Members
tabela e todos os dias eles inserem entradas de horas do trabalho que executaram e são armazenados na Time_Entry
tabela.
Exemplo de configuração com o SQL Fiddle: http://sqlfiddle.com/#!3/e3806/7
O resultado final que vou buscar é uma tabela que mostra TODAS as Members
listas de uma coluna e, em seguida, mostrará suas horas de soma para a data consultada nas outras colunas.
O problema parece ser que, se não houver linha na Time_Entry
tabela para um membro em particular, agora haverá linha para esse membro. Eu tentei vários tipos de junção diferentes (esquerda, direita, interna, externa, externa completa, etc.), mas nenhum parece me dar o que eu quero, o que seria (com base no último exemplo no 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
O que estou recebendo no momento em que consulta uma data específica de 11-1:
Member_ID | COUNTTime_Entry | TIMEENTRYDATE | SUMHOURS_ACTUAL | SUMHOURS_BILL
EGirsch | 1 | 11-10-2013 | 0.92 | 1
O que é correto com base na linha de entrada de tempo datada de 11/11/2013 para EGirsch, mas preciso ver zeros para os outros membros para obter relatórios e, eventualmente, um painel / relatório da Web para essas informações.
Esta é minha primeira pergunta e, enquanto eu procurava por Ingressar em consultas, etc. Sinceramente, não tenho certeza de como essa função pode ser chamada. Espero que isso não seja uma duplicata e ajude outras pessoas a tentar encontrar uma solução para problemas semelhantes.
WHERE
eAND
. Eu tinha usado aliases originalmente, mas o sqlfiddle não parecia gostar, então apenas fui para o formato completo. Obrigado pelas outras dicas SQL também. Você recomendariaISNULL
ouCOALESCE
tornaria os dados 0 em vez deNULL
? Obrigado novamente!