J'essaie d'obtenir des rapports pour les enregistrements de temps des employés.
Nous avons deux tableaux spécifiquement pour cette question. Les employés sont répertoriés dans le Members
tableau et chaque jour, ils saisissent les entrées de temps du travail qu'ils ont effectué et sont stockés dans le Time_Entry
tableau.
Exemple de configuration avec SQL Fiddle: http://sqlfiddle.com/#!3/e3806/7
Le résultat final que je veux est un tableau qui montre TOUS les Members
dans une liste de colonnes et ensuite montrera leurs heures de somme pour la date interrogée dans les autres colonnes.
Le problème semble être que s'il n'y a pas de ligne dans la Time_Entry
table pour un membre particulier, il y a maintenant une ligne pour ce membre. J'ai essayé plusieurs types de jointures différents (gauche, droite, intérieure, extérieure, pleine extérieure, etc.) mais aucun ne semble me donner ce que je veux, ce qui serait (basé sur le dernier exemple dans 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
Ce que j'obtiens actuellement lorsque je demande une date précise de 11-1:
Member_ID | COUNTTime_Entry | TIMEENTRYDATE | SUMHOURS_ACTUAL | SUMHOURS_BILL
EGirsch | 1 | 11-10-2013 | 0.92 | 1
Ce qui est correct sur la base d'une ligne d'entrée unique datée du 11-10-2013 pour EGirsch, mais j'ai besoin de voir des zéros pour les autres membres afin d'obtenir des rapports et, éventuellement, un tableau de bord / rapport Web pour ces informations.
Ceci est ma première question, et pendant que je cherchais des requêtes Join, etc. Je ne suis honnêtement pas sûr de ce que cette fonction pourrait être appelée, donc j'espère que ce n'est pas un doublon et aidera les autres aussi à essayer de trouver une solution problèmes similaires.
WHERE
etAND
. J'avais utilisé des alias à l'origine, mais sqlfiddle ne semblait pas l'aimer, alors je suis simplement passé au format complet. Merci également pour les autres conseils SQL. Recommanderiez-vousISNULL
ouCOALESCE
pour rendre les données 0 au lieu deNULL
? Merci encore!