アプリケーションの時間データを使って楽しいチャレンジをしています。開始時間と終了時間の表があります。複数の行を取得するには、差を維持しながらシフト時間を差し引く必要があります。現在、SQLServer2008ボックスでこれを実行しようとしています。
アイデアは、私が次のような時間列を持っているかどうかです
Start 09:00 End 19:12
そしてシフトは09:00->17:00と言います私はデータを2つの行に分割/分割する必要があります
Start 09:00 End 17:00
Start 17:00 End 19:12
これも深夜に機能する必要があります。私はいくつかのアイデアで遊んでいるので、いくつかのスクラッチデータを作成しましたが、ケースステートメントから抜け出す方法があるかどうか疑問に思っています。
Create Table dbo.tblClockEvents
(
DayOfWeek Int,
ClockOn Time,
ClockOff Time
)
Create Table dbo.tblShiftPattern
(
DayOfWeek Int,
StartTime Time,
EndTime Time
)
insert into dbo.tblShiftPattern
select 1, '07:30', '17:00'
union select 2, '09:30', '18:00'
union select 3, '09:30', '18:00'
union select 4, '09:30', '18:00'
union select 5, '20:30', '04:00'
insert into dbo.tblClockEvents
select 1, '07:30', '17:00'
union select 2, '09:22', '18:14'
union select 3, '09:12', '18:01'
union select 4, '09:22', '18:14'
union select 5, '20:22', '04:14'
Select *
from dbo.tblClockEvents aa
inner join tblShiftPattern bb
on aa.DayOfWeek = bb.DayOfWeek