我正在努力显示上一周没有进入任何小时的员工。我目前正在使用三张桌子。一个表格是每周有第一个日期的日历。星期的格式是星期日到星期六。第二个表格是输入的小时数列表。时间表包含输入时间的日期和员工姓名。第三张表是所有雇员的名单。我似乎无法得到联合工作,我希望他们如何工作。最终结果我希望看到鲍勃在第7周和第8周进入时间,但第9周为空。感谢您的帮助。非常感谢。显示基于三个表的空值
目前代码
SELECT
d.Resource
,SUM(p.Hours) AS Hours
,m.[WeeksSundayToSaturday]
,DatePart(wk, m.[WeeksSundayToSaturday]) AS WeekNumber
FROM CalendarWeeks m
LEFT JOIN [TimeTracking] p ON
(m.[WeeksSundayToSaturday] BETWEEN p.Date AND p.Date + 7)
RIGHT JOIN [DepartmentMembers] d ON
d.Resource = p.CreatedBy
GROUP BY
d.Resource
,m.WeeksSundayToSaturday
数据表
Department Members
Name Department
Bob Engineer
Sue HR
John Operations
Time Tracking
Resource Hours Date
Bob 13 2/9/2014
Sue 12 2/10/2014
John 2 2/11/2014
Bob 6 2/12/2014
Bob 8 2/13/2014
John 8 2/14/2014
John 8 2/15/2014
Bob 8 2/16/2014
Bob 1 2/17/2014
Bob 2 2/18/2014
Bob 1 2/19/2014
Bob 8 2/20/2014
Bob 9 2/21/2014
Bob 6 2/22/2014
Sue 8 2/23/2014
John 2 2/24/2014
Calendar
WeeksSundayToSaturday
1/5/2014
1/12/2014
1/19/2014
1/26/2014
2/2/2014
2/9/2014
2/16/2014
2/23/2014
3/2/2014
3/9/2014
3/16/2014
3/23/2014
3/30/2014
所需的结果
Bob
Week 7 = 27
Week 8 = 35
Week 9 = NULL
尝试做外部联接在时间跟踪表:LEFT OUTER JOIN [时间跟踪] P于 – Koshera