私は2つのテーブルを持っています、1つはタスクのリストです。もう1つはこれらのタスクの履歴値を含んでいます。SQL Server:最大日付と内部結合
は私が仕事を行う必要があります以内に限り長くそのDate_Executed
は、現在の日時マイナスTimeframe
(TimeFrame
いる時間未満であると、各チェックの最新イベントのリスト(およびその説明)を生成する必要があります、DATEADD
で使用するようにフォーマットされています)。ただし、active = 1
がある場合に限ります。
表:チェック
Check_id description TimeFrame active
1 Task One -24 0
2 Task Two -24 0
3 Task Forty -48 1
4 Task Somehin -128 1
表:イベント
Event_id Check_id Comment Date_Executed User_Executed
1 1 NULL 2012-09-18 16:10:44.917 admin
2 1 NULL 2012-09-25 11:39:01.000 jeff
3 4 Failed 2012-09-25 13:20:09.930 steve
4 4 Half failed 2012-09-25 13:05:09.953 marsha
5 2 NULL 2012-09-25 14:02:24.000 marsha
6 3 NULL 2012-09-18 16:10:55.023 marsha
私がこれまで持っている最高のソリューションは、次のとおりです。
SELECT
a.[Date_Executed]
a.[Check_id],
a.[Comments],
b.[frequency],
b.[Check_id],
b.[description]
FROM
[checksdb].[dbo].events as a,
[checksdb].[dbo].checks as b
where
b.active = 1
and a.[Date_Executed] < = dateadd(HOUR,b.[frequency],GETDATE())
and a.Check_id = b.Check_id
order by Check_id, priority
と
select MAX(date_Executed), Task_id from daily_check_events group by Task_id
どちらも私に必要なものが得られないので、私は実際にいくつかの助けを使うことができます。
に取り組んでいますでしょうか?また、[FROM table_a、table_b'構文の使用を中止してください](http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/08/bad-habits-to-kick-using-old-style-joins .aspx)。 –