卡住了一個項目。我在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