我有一个可能一天运行几次的应用程序。每次运行都会将数据写入表中以报告发生的事件。主报告表如下所示:
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)
我知道任何靠近的跑步都可能会被组合在一起,我对此很好。我只希望得到一个粗略的分组。
谢谢!