ฉันกำลังพยายามทำให้การรายงานบางอย่างเสร็จสิ้นเพื่อบันทึกเวลาของพนักงาน
เรามีสองตารางสำหรับคำถามนี้โดยเฉพาะ พนักงานมีการระบุไว้ในMembers
ตารางและในแต่ละวันพวกเขาป้อนรายการเวลาของงานที่พวกเขาทำและถูกเก็บไว้ในTime_Entry
ตาราง
ตัวอย่างการตั้งค่าด้วย SQL Fiddle: http://sqlfiddle.com/#!3/e3806/7
ผลลัพธ์ที่ฉันจะให้เป็นตารางซึ่งแสดงให้เห็นทั้งหมดMembers
ในรายการคอลัมน์และจากนั้นจะแสดงชั่วโมงรวมของพวกเขาสำหรับวันที่สอบถามในคอลัมน์อื่น ๆ
ปัญหาดูเหมือนว่าถ้าไม่มีแถวในTime_Entry
ตารางสำหรับสมาชิกเฉพาะตอนนี้มีแถวสำหรับสมาชิกนั้น ฉันได้ลองประเภทการเข้าร่วมหลายประเภท (ซ้าย, ขวา, ด้านใน, ด้านนอก, ด้านนอกเต็ม, ฯลฯ ) แต่ดูเหมือนว่าจะไม่มีสิ่งใดที่ฉันต้องการซึ่งจะเป็น (ตามตัวอย่างล่าสุดในซอฟแวร์ 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
สิ่งที่ฉันได้รับเมื่อฉันสอบถามวันที่เฉพาะเจาะจงที่ 11-1:
Member_ID | COUNTTime_Entry | TIMEENTRYDATE | SUMHOURS_ACTUAL | SUMHOURS_BILL
EGirsch | 1 | 11-10-2013 | 0.92 | 1
ซึ่งถูกต้องตามแถวเวลาหนึ่งรายการที่ลงวันที่ 11-10-2013 สำหรับ EGirsch แต่ฉันต้องดูค่าศูนย์สำหรับสมาชิกคนอื่น ๆ เพื่อรับรายงานและท้ายที่สุดเว็บแดชบอร์ด / รายงานสำหรับข้อมูลนี้
นี่เป็นคำถามแรกของฉันและในขณะที่ฉันค้นหาคิวรีเข้าร่วม ฯลฯ ฉันไม่แน่ใจว่าจะเรียกฟังก์ชั่นนี้อย่างไรฉันหวังว่านี่จะไม่ซ้ำกันและจะช่วยให้ผู้อื่นพยายามหาวิธีแก้ปัญหา ปัญหาที่คล้ายกัน
WHERE
AND
ฉันเคยใช้นามแฝงมาก่อน แต่ sqlfiddle ดูเหมือนจะไม่ชอบดังนั้นฉันจึงเปลี่ยนเป็นแบบเต็มรูปแบบ ขอบคุณสำหรับเคล็ดลับ SQL อื่น ๆ เช่นกัน คุณอยากจะแนะนำISNULL
หรือCOALESCE
การให้ข้อมูลที่0แทนNULL
? ขอบคุณอีกครั้ง!