Sto cercando di ottenere alcuni rapporti per i registri orari dei dipendenti.
Abbiamo due tabelle specifiche per questa domanda. I dipendenti sono elencati nella Members
tabella e ogni giorno inseriscono le voci del lavoro che hanno svolto e che sono archiviate nella Time_Entry
tabella.
Esempio di installazione con SQL Fiddle: http://sqlfiddle.com/#!3/e3806/7
Il risultato finale che sto cercando è una tabella che mostra TUTTI i Members
in un elenco di colonne e quindi mostrerà le loro ore di somma per la data richiesta nelle altre colonne.
Il problema sembra essere che se non vi sono righe nella Time_Entry
tabella per un determinato membro, ora esiste una riga per quel membro. Ho provato diversi tipi di join (Left, Right, Inner, Outer, Full Outer, ecc.), Ma nessuno sembra darmi quello che voglio, che sarebbe (basato sull'ultimo esempio in 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
Cosa ricevo attualmente quando eseguo una query per una data specifica dell'11-1:
Member_ID | COUNTTime_Entry | TIMEENTRYDATE | SUMHOURS_ACTUAL | SUMHOURS_BILL
EGirsch | 1 | 11-10-2013 | 0.92 | 1
Il che è corretto in base alla riga di una registrazione temporizzata datata 11-10-2013 per EGirsch, ma ho bisogno di vedere zeri per gli altri membri per ottenere report e infine un dashboard / report Web per queste informazioni.
Questa è la mia prima domanda, e mentre cercavo le query Join, ecc. Non sono sinceramente sicuro di come si possa chiamare questa funzione, quindi spero che questa non sia una duplicazione e aiuterà anche gli altri a cercare una soluzione per problemi simili.
WHERE
eAND
. All'inizio avevo usato gli alias, ma a sqlfiddle non sembrava piacermi, quindi sono passato al formato completo. Grazie anche per gli altri suggerimenti SQL. ConsiglierestiISNULL
oCOALESCE
rendere i dati 0 invece diNULL
? Grazie ancora!