Çalışanların zaman kayıtları için bazı raporlar hazırlamaya çalışıyorum.
Bu soru için özel olarak iki tablonuz var. Çalışanlar Members
tabloda listelenir ve her gün yaptıkları işin zaman girişlerini girerler ve Time_Entry
tabloda saklanırlar .
SQL Fiddle ile örnek kurulum: http://sqlfiddle.com/#!3/e3806/7
Ben gidiyorum Sonuçta gösterileri tablodur TÜMMembers
sütun listesinde ve daha sonra diğer sütunlarda sorgulanan tarih için onların toplamı saat gösterecektir.
Sorun şu ki, Time_Entry
belirli bir üye için tabloda satır yoksa, o üye için şimdi satır vardır. Birkaç farklı birleştirme türleri denedim (Sol, Sağ, İç, Dış, Tam Dış, vb) ama hiçbiri bana (SQL Fiddle'daki son örneğe dayanarak) ne istediğimi veriyor gibi görünüyor:
/*** 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
Şu anda 11-1 belirli tarih için sorgulamak ne alıyorum:
Member_ID | COUNTTime_Entry | TIMEENTRYDATE | SUMHOURS_ACTUAL | SUMHOURS_BILL
EGirsch | 1 | 11-10-2013 | 0.92 | 1
Hangi EGirsch için 11-10-2013 tarihli bir Zaman Giriş satırına dayalı doğru, ama raporları almak için diğer üyeler için sıfırlar ve sonunda bu bilgi için bir web kontrol paneli / rapor görmek gerekir.
Bu benim ilk sorum ve Ben katılma sorguları, vb ararken Dürüst olmak gerekirse bu işlev ne denir emin değilim, bu yüzden umarım bu bir kopya değildir ve başkalarının da bir çözüm bulmaya çalışırken yardımcı olacaktır benzer sorunlar.
WHERE
veAND
. Başlangıçta takma adlar kullanmıştım, ancak sqlfiddle hoşuna gitmedi, bu yüzden tam formatta gittim. Diğer SQL ipuçları için de teşekkürler. Eğer tavsiye ederISNULL
ya daCOALESCE
veri yapmak için 0 yerineNULL
? Tekrar teşekkürler!