轉變的開始日期我有一個包含一些轉變信息的僱員(S)查詢時間序列,更新每一行與重疊到
+-------+------------+------------------+------------+------------------+------------+
| empid | StartDate | StartTime | EndDate | EndTime | ShiftDate |
+-------+------------+------------------+------------+------------------+------------+
| 391 | 2014-12-16 | 20:00:00.0000000 | 2014-12-16 | 22:00:00.0000000 | ? |
| 391 | 2014-12-16 | 22:00:00.0000000 | 2014-12-16 | 22:15:00.0000000 | ? |
| 391 | 2014-12-16 | 22:15:00.0000000 | 2014-12-17 | 00:00:00.0000000 | ? |
| 391 | 2014-12-17 | 00:00:00.0000000 | 2014-12-17 | 00:45:00.0000000 | ? |
| 391 | 2014-12-17 | 00:45:00.0000000 | 2014-12-17 | 02:30:00.0000000 | ? |
| 391 | 2014-12-17 | 02:30:00.0000000 | 2014-12-17 | 02:45:00.0000000 | ? |
| 391 | 2014-12-17 | 02:45:00.0000000 | 2014-12-17 | 04:30:00.0000000 | ? |
+-------+------------+------------------+------------+------------------+------------+
| 391 | 2014-12-17 | 20:00:00.0000000 | 2014-12-17 | 21:45:00.0000000 | ? |
| 391 | 2014-12-17 | 21:45:00.0000000 | 2014-12-17 | 22:00:00.0000000 | ? |
| 391 | 2014-12-17 | 22:00:00.0000000 | 2014-12-18 | 00:00:00.0000000 | ? |
| 391 | 2014-12-18 | 00:00:00.0000000 | 2014-12-18 | 00:45:00.0000000 | ? |
| 391 | 2014-12-18 | 00:45:00.0000000 | 2014-12-18 | 02:30:00.0000000 | ? |
| 391 | 2014-12-18 | 02:30:00.0000000 | 2014-12-18 | 02:45:00.0000000 | ? |
| 391 | 2014-12-18 | 02:45:00.0000000 | 2014-12-18 | 04:30:00.0000000 | ? |
+-------+------------+------------------+------------+------------------+------------+
表我需要更新ShiftDate列與這個班次的StartDate。所以下面是2個不同的班次,每個班次超過2天。第一班ShiftDate每行應該是2014-12-16,第二班,每行的ShiftDate應該是2014-12-17。
預期結果:
+-------+------------+------------------+------------+------------------+------------+
| empid | StartDate | StartTime | EndDate | EndTime | ShiftDate |
+-------+------------+------------------+------------+------------------+------------+
| 391 | 2014-12-16 | 20:00:00.0000000 | 2014-12-16 | 22:00:00.0000000 | 2014-12-16 |
| 391 | 2014-12-16 | 22:00:00.0000000 | 2014-12-16 | 22:15:00.0000000 | 2014-12-16 |
| 391 | 2014-12-16 | 22:15:00.0000000 | 2014-12-17 | 00:00:00.0000000 | 2014-12-16 |
| 391 | 2014-12-17 | 00:00:00.0000000 | 2014-12-17 | 00:45:00.0000000 | 2014-12-16 |
| 391 | 2014-12-17 | 00:45:00.0000000 | 2014-12-17 | 02:30:00.0000000 | 2014-12-16 |
| 391 | 2014-12-17 | 02:30:00.0000000 | 2014-12-17 | 02:45:00.0000000 | 2014-12-16 |
| 391 | 2014-12-17 | 02:45:00.0000000 | 2014-12-17 | 04:30:00.0000000 | 2014-12-16 |
+-------+------------+------------------+------------+------------------+------------+
| 391 | 2014-12-17 | 20:00:00.0000000 | 2014-12-17 | 21:45:00.0000000 | 2014-12-17 |
| 391 | 2014-12-17 | 21:45:00.0000000 | 2014-12-17 | 22:00:00.0000000 | 2014-12-17 |
| 391 | 2014-12-17 | 22:00:00.0000000 | 2014-12-18 | 00:00:00.0000000 | 2014-12-17 |
| 391 | 2014-12-18 | 00:00:00.0000000 | 2014-12-18 | 00:45:00.0000000 | 2014-12-17 |
| 391 | 2014-12-18 | 00:45:00.0000000 | 2014-12-18 | 02:30:00.0000000 | 2014-12-17 |
| 391 | 2014-12-18 | 02:30:00.0000000 | 2014-12-18 | 02:45:00.0000000 | 2014-12-17 |
| 391 | 2014-12-18 | 02:45:00.0000000 | 2014-12-18 | 04:30:00.0000000 | 2014-12-17 |
+ ------- + ------------ + -------------- ---- + ------------ + ------------------ + ------------ +
我無法處理從給定行中確定移位日期的方法。當這是一個新班次時,班次開始時間將不會與班次的前一個結束時間相同。
我與SQL 2008 R2
任何建議的工作讓我朝着正確的方向將是巨大的!
可以更新與預期輸出 – 2014-12-19 04:09:11
增加的預期結果的問題,也許是一個更好的列名應的被ShiftStartDate – kirkdmo 2014-12-19 04:14:48
我看不出你如何能做到這一點 - 你怎麼知道,這兩個塊是一除了通過檢查以外的其他轉變? – Rikalous 2014-12-19 09:35:14