次のようなテーブルがあります。
create table time_sheet
(
StatusCode char(1),
start_time datetime,
end_time datetime
)
insert into time_sheet values
('W','2012-08-01 10:00:00','2012-08-01 12:00:00'),
('D','2012-08-01 12:00:00','2012-08-01 14:00:00'),
('N','2012-08-01 16:00:00','2012-08-01 18:00:00')
出力は次のようになります。
StatusCode start_time end_time
B 2012-08-01 08:00:00.000 2012-08-01 10:00:00.000
W 2012-08-01 10:00:00.000 2012-08-01 12:00:00.000
D 2012-08-01 12:00:00.000 2012-08-01 14:00:00.000
B 2012-08-01 14:00:00.000 2012-08-01 16:00:00.000
N 2012-08-01 16:00:00.000 2012-08-01 18:00:00.000
B 2012-08-01 18:00:00.000 2012-08-01 20:00:00.000
一日の始まりと終わりは以下のように宣言されます。
declare @begingOfDay datetime='2012-08-01 08:00:00.000'
declare @endOfDay datetime='2012-08-01 20:00:00.000'
基本的には、結果セットのbeginOfDay とendOfDayの間のstatusCode Bに欠落している時間範囲レコードが必要です 。出力に、StatusCode B で追加された 3 つのレコードがあることを確認してください。
誰でもこれを手伝ってもらえますか?