私は次の表を持っています
table event(
start_tstamp [datetime],
stop_tstamp [datetime],
exe_name [nvarchar](50),
machine_name [nvarchar](30)
)
このテーブルから、次の形式のstart_tstampとstop_tstampの間の時間差ごとに 1 行の情報を含むスカラー テーブルを生成する必要があります。
table event_temp(
day_occured [datetime],
hour_occured [tinyint],
exe_name [nvarchar](50),
machine_name [nvarchar](30)
)
たとえば、テーブルイベントには 2 行が含まれます
"2012/12/10 07:00", "2012/12/10 09:00", "notepad.exe", "testmachine"
"2012/12/11 15:00", "2012/12/11 18:00", "notepad.exe", "foomachine"
結果のevent_tempは次のようになります
"2012/12/10 00:00", 7, "notepad.exe", "testmachine"
"2012/12/10 00:00", 8, "notepad.exe", "testmachine"
"2012/12/10 00:00", 9, "notepad.exe", "testmachine"
"2012/12/11 00:00", 15, "notepad.exe", "foomachine"
"2012/12/11 00:00", 16, "notepad.exe", "foomachine"
"2012/12/11 00:00", 17, "notepad.exe", "foomachine"
"2012/12/11 00:00", 18, "notepad.exe", "foomachine"
次に、event_tempテーブルと、 event_tempの日付に一致する日付のリストを返す既存のカレンダー テーブルを結合する必要があります。
table calendar(
day_occured [datetime],
hour_occured [tinyint],
)
それはちょうど含まれます:
"2012/12/10 00:00", 0
"2012/12/10 00:00", 1
"2012/12/10 00:00", 2
"2012/12/10 00:00", 3
"2012/12/10 00:00", 4
"2012/12/10 00:00", 5
...
結果は基本的に、特定の時間に実行されているメモ帳のインスタンス数のリストになるはずです。
table result(
day_occured [datetime],
hour_occured [tinyint],
instances_running [int]
)
これを達成する方法はありますか?