我有相同的列的兩個不同的表。一個是#temp1,另一個是#temp2。
附加的圖像包含每個表的數據集。
我已經寫了一個查詢來獲取數據。下面是該查詢:
SELECT distinct A.EmpID, A.DeptIdID, A.RoomID,
IN= CASE WHEN DATEDIFF(S, A.IN, B.IN) >= 0 THEN B.IN ELSE A.In END,
Out= CASE WHEN DATEDIFF(S, A.Out, B.Out) >= 0 THEN A.Out ELSE B.Out END
FROM #temp1 A
INNER JOIN #temp2 B
ON (A.In>= B.In AND A.In< B.In)
OR (A.Out> B.OutAND A.Out<= B.Out)
我想是從#temp1中,其進出#TEMP2的In和Out之間屬於獲取數據。上面的查詢對於絕對進出入口來說工作得很好。
考慮#temp1的條目11和#temp2的條目1和4。 #temp1的In和Out條目是4月17日至20日,而#temp2中的這個日期範圍有兩個條目。一個是從4月12日到4月18日,另一個是從4月18日到4月20日。因此#temp1的結果應該分成以下兩個條目。
- 4月17日至4月18日與#temp2的列值RoomId = 1。
- 4月18日至4月20日,其中RoomId = 2來自#temp2的列值。
而且應該只有#temp1的唯一列。
這是一個很好的開始。 http://spaghettidba.com/2015/04/24/how-to-post-a-t-sql-question-on-a-public-forum/ –
你的例子非常有限。例如,如果在另一個表的一個大範圍內有幾個較小的範圍,會發生什麼?如果有人真的想幫助你,你的數據應該是文本/插入子句/在sql小提琴中,而不必從圖片中寫入數據。 –
可能是一個有趣的問題,但不清楚你想達到什麼或數據的含義。我認爲empid是獨一無二的。房間是由deptid + roomid唯一定義的嗎?兩個表格代表兩個部門中的房間deptid = 1和0以及誰預訂了他們以及他們使用的預訂日期?看起來JOIN條件不會像現在這樣返回任何行。 –