卡住了一个项目。我在sql服务器中发现了这个代码,它发现了一个职员的重复日期匹配,但是当我试图扩展它以缩小它到时间范围也彼此重叠时,我被卡住了。时间和日期冲突 - Sql Server
因此,有一个叫做“花名册”同列“ STAFFID”,“日期”,“开始”,“终结”
SELECT
y.[Date],y.StaffID,y.Start,y.[End]
FROM Rosters y
INNER JOIN (SELECT
[Date],StaffID, COUNT(*) AS CountOf
FROM Rosters
GROUP BY [Date],StaffID
HAVING COUNT(*)>1)
dd ON y.[Date]=dd.[Date] and y.StaffID=dd.StaffID
它返回所有重复日期为每个工作人员的表,我想添加逻辑 -
y.Start <= dd.[End] && dd.Start <= y.[End]
这是可能的方式我目前正在做呢?任何帮助,将不胜感激。
@TT。抱歉,下面可能是一个更好的视觉的解释 -
例如,这将是名册表
ID Date Start End
1 01/01/2000 8:00 12:00
1 01/01/2000 9:00 11:00
2 01/01/2000 10:00 14:00
2 01/01/2000 8:00 9:00
3 01/01/2000 14:00 18:00
3 02/02/2002 13:00 19:00
而且我试图返回下面究竟是什么的例子,因为他们是对ID,日期和时间范围冲突的唯一2行(开始 - 结束)
ID Date Start End
1 01/01/2000 8:00 12:00
1 01/01/2000 9:00 11:00
dd子查询可能包含多个开始和结束,您想要比较哪个值? –
你应该用单词而不是T-SQL解释你想要的。不要专注于解决方案,而是解释你想要做什么。 –
@NolanShang - 我试图把它包括在子查询中,但它不返回任何东西,我有一种感觉,我正在做一些小错误,但它是我画空白的那些东西之一:( – Bev0