【发布时间】:2011-07-13 23:40:40
【问题描述】:
SELECT
T.clinic_code, C.dt, T.schedule_time, T.section_name,
T.section_content, CS.schedule_event_source_id
FROM Master_Templates T
INNER JOIN Calendar C
ON T.dw = C.dw
AND T.mo = (C.D - 1) / 7 + 1
AND C.Y = '2014'
AND C.M = '3'
AND T.clinic_code = 'ABC'
LEFT OUTER JOIN Clinic_Schedule CS
ON CS.schedule_date=convert(varchar, C.dt, 121)
AND CS.clinic_code=T.clinic_code
AND CS.schedule_time=T.schedule_time
AND CS.section_name = T.section_name
WHERE CS.schedule_event_source_id = 2
Clinic_Schedule 包含 1 条记录:
诊所代码 | schedule_date |时间安排 |节名 | schedule_event_source_id ABC | 2014-03-03 |上午 |教师 | 2
Master_Template 包含 168 条记录:
诊所代码 |下一篇 |莫|时间安排 |节名 |部分内容
日历包含用于将 Master_Template 记录与星期几相连的列。
如何更改上面的查询以返回 167 行? IE。 master_template 中的总行数,减去 Clinic_schedule 中的行数。
【问题讨论】:
-
您至少需要将日历上的加入更改为左加入?
标签: sql-server-2005 tsql select join