1
我有導演根據助理是否工作或者導演沒有工作時支付傭工。SQL查詢比較日期時間重疊並顯示它們
有2次如下: -
主任
Name TimeIn TimeOut
Bob 2012-07-17 07:00:00.000 2012-07-17 16:00:00.000
Sam 2012-07-17 10:00:00.000 2012-07-17 20:00:00.000
Beatly 2012-07-17 14:00:00.000 2012-07-17 23:00:00.000
Mac 2012-07-17 21:00:00.000 2012-07-18 07:00:00.000
助手
Name TimeIn TimeOut
Fred 2012-07-17 15:59:00.000 2012-07-18 00:19:00.000
現在搞清楚誰在這段時間的工作是不是最困難的部分,或者至少這不是我的問題包裹着我的大腦。什麼是找到哪裏和什麼分鐘,以及由誰重疊這個分鐘。按照所用時間將它們組合在一起。因爲他們都會把小時工分攤給抄寫員。所以理想情況下,結果如下。
DirName HelperStart HelperEnd
Bob 2012-07-17 15:59:00.000 2012-07-17 16:00:00.000
Sam 2012-07-17 15:59:00.000 2012-07-17 16:00:00.000
Beatly 2012-07-17 15:59:00.000 2012-07-17 16:00:00.000
Sam 2012-07-17 16:01:00.000 2012-07-17 20:00:00.000
Beatly 2012-07-17 16:01:00.000 2012-07-17 20:00:00.000
Beatly 2012-07-17 20:01:00.000 2012-07-17 21:00:00.000
Beatly 2012-07-17 21:01:00.000 2012-07-17 23:00:00.000
Mac 2012-07-17 21:01:00.000 2012-07-17 23:00:00.000
Mac 2012-07-17 23:01:00.000 2012-07-18 00:19:00.000
使用SQL Server 2008.我希望簡單的骨架分解就足夠了。找到足夠的查詢來查看是否有人與時間衝突,但沒有發現上述情況。
我不知道,有人可以在發生什麼事了,但我不明白你的結果的日期。也許更少的記錄,更多的細節會有所幫助。即使發佈你現在嘗試過的內容也不錯。 (它有助於瞭解表和現有查詢是如何建立起來的) –
幫助「屬於」導演,你會如何知道這一點?如果沒有這個,那麼我想象一個導演的衝突與多於一個幫手的重疊時間。 –
您確實應該將該結束時間戳存儲並用作_exclusive_上限。把它想象成「這個人不在這裏的第一個瞬間」,而不是「這個人在這裏的最後一刻」。 –