我有一個應用程序可能每天運行多次。每次運行都會導致寫入表中的數據報告發生的事件。主報告表看起來是這樣的:按時間塊查詢記錄和分組
Id SourceId SourceType DateCreated
5048 433 FILE 5/17/2011 9:14:12 AM
5049 346 FILE 5/17/2011 9:14:22 AM
5050 444 FILE 5/17/2011 9:14:51 AM
5051 279 FILE 5/17/2011 9:15:02 AM
5052 433 FILE 5/17/2011 12:34:12 AM
5053 346 FILE 5/17/2011 12:34:22 AM
5054 444 FILE 5/17/2011 12:34:51 AM
5055 279 FILE 5/17/2011 12:35:02 AM
我可以告訴大家,有兩分,但我想一個辦法能夠查詢的日期範圍,次數的過程中運行。我想要一個查詢,導致進程開始的時間和組中文件的數量。這種查詢讓我得到我想要的東西,我可以看到什麼日子和小時以及運行了多少文件,但並不完全如我所願。例如,它不會適應從8:58到9:04運行的運行。例如,它也會分組在9:02和9:15開始的運行。
Select dateadd(day,0,datediff(day,0,DateCreated)) as [Date], datepart(hour, DateCreated) as [Hour], Count(*) [File Count]
From MyReportTable
Where DateCreated between '5/4/2011' and '5/18/2011'
and SourceType = 'File'
Group By dateadd(day,0,datediff(day,0,DateCreated)), datepart(hour, DateCreated)
Order By dateadd(day,0,datediff(day,0,DateCreated)), datepart(hour, DateCreated)
我明白,任何靠近在一起的跑步都可能會分組在一起,我對此很滿意。我只希望得到一個粗糙的分組。
謝謝!
添加Sql或它是不可能的;)我明白你在說什麼,但我不知道如何在SQL中寫這個。我當然可以把邏輯放在消費代碼中,而不是期待sql提供它。 – NerdFury 2011-05-17 20:44:51
Workin on it :) – 2011-05-17 21:08:03
在發佈sql之前,我開始試圖解決它。我基本上和你得到的一樣,但發現通過加入id-1而不是+1我得到了啓動範圍,只有第一組退出。這是足夠老,我不在乎。謝謝你的幫助。 – NerdFury 2011-05-17 22:37:23