2014-11-03 54 views
-1

我需要找到如何查詢具有時間間隔的表。間隔SQL查詢組

記錄在事件後添加,例如一個事件:十行。 但是,如果再次發生相同的事件:添加十個新行。 所以1事件:二十行。

我想找到所有出現不止一次的id爲最小值,最大值和日期/時間

我有theese兩個表的事件:

First contain : ID, EVENT_TYPE, DATE, STATE 
Second contain : ID, EVENT_NUMBER, DATA_OF_EVENT 

所以我想要兩個結果行如果事件發生2次

樣本數據:

----------- 
| TABLE1 | 
----------- 
1, T1, 20141031 10:00:00 
2, T1, 20141031 10:00:00 
3, T1, 20141031 10:00:00 
4, T1, 20141031 10:00:00 
5, T1, 20141031 10:00:00 
6, T1, 20141031 10:00:00 
7, T1, 20141031 10:00:00 
8, T1, 20141031 10:00:00 
9, T1, 20141031 10:00:00 
10, T1, 20141031 10:20:00 
11, T1, 20141031 10:20:00 
12, T1, 20141031 10:20:00 
13, T1, 20141031 10:20:00 
14, T1, 20141031 10:20:00 
15, T1, 20141031 10:20:00 
16, T2, 20141101 09:10:00 
17, T1, 20141101 15:52:00 

----------- 
| TABLE2 | 
----------- 
1, EVENT1, Some data... 
2, EVENT1, Some data... 
3, EVENT1, Some data... 
4, EVENT1, Some data... 
5, EVENT1, Some data... 
6, EVENT1, Some data... 
7, EVENT1, Some data... 
8, EVENT1, Some data... 
9, EVENT1, Some data... 
10, EVENT1, Some data... 
11, EVENT1, Some data... 
12, EVENT1, Some data... 
13, EVENT1, Some data... 
14, EVENT1, Some data... 
15, EVENT1, Some data... 
16, EVENT2, Some data... 
17, EVENT3, Some data... 

------------------ 
| Wanted result | 
------------------ 
EVENT1, 1, 9, 20141031 10:00:00 
EVENT1, 10, 15, 20141031 10:20:00 
+1

添加一些數據樣本,最好有些DDL或SQLFiddle.com – Horaciux 2014-11-03 14:43:05

+0

爲什麼要補充10個重複行'TABLE1'?除了ID之外,我沒有看到它們之間的差異,這似乎是自動增加的。 – 2014-11-03 19:21:43

回答

0

編輯,以新的請求:

select a.event_number, b.min_id, b.max_id, cast(b.date as smalldatetime) 
from table2 a inner join 
(select min(id) min_id, max(id) max_id, cast(date as smalldatetime) date, event_type 
from table1 
group by cast(date as smalldatetime), event_type) b 
on a.id=b.min_id 

MSDN

ss是兩位數字,範圍從00到59,表示第二個。 29.998秒或更少的值向下取整至最接近的 分鐘,29.999秒或更長的值向上取整至最接近的 分鐘。

TEST in SQLFiddle

+0

是的!但只是一個細節。 有時候日期時間會有幾秒到一條記錄。 datetime組容忍1分鐘? – cerede2000 2014-11-05 14:32:03

+0

@BenjaminCEREDE一分鐘時間垃圾郵件或在同一分鐘內無視秒?即10:10:10和10:11:09情況1:在寬容,情況2:不在寬容 – Horaciux 2014-11-05 15:16:01

+0

是無視第二,但如果XX:10:58分鐘變化:( – cerede2000 2014-11-06 08:34:51