मेरे पास दो टेबल हैं, एक कार्य की एक सूची है। दूसरे में उन कार्यों के लिए ऐतिहासिक मूल्य शामिल हैं।एसक्यूएल सर्वर: अधिकतम तिथि और आंतरिक शामिल
मैं एक (और इसके विवरण) प्रत्येक चेक के लिए नवीनतम घटना की सूची बनाने के लिए, जब तक कि लंबे समय के रूप में अपनी 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
इनमें से कोई भी मुझे जो चाहिए वह मुझे प्राप्त नहीं करता है, मैं वास्तव में कुछ मदद का उपयोग कर सकता हूं।
प्रश्नों आप की कोशिश की है कि आप इच्छित परिणाम नहीं देते के अलावा पर काम करता है, आप इच्छित परिणाम दिखा सकता है? साथ ही, [कृपया table_a से, table_b' वाक्यविन्यास का उपयोग करना बंद करें] (http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/08/bad-habits-to-kick-using-old-style-joins .aspx)। –