Query Records and Group por um período de tempo

Tenho um aplicativo que pode ser executado várias vezes ao dia. Cada execução resulta em dados gravados em uma tabela para relatar eventos que ocorreram. A tabela principal do relatório é mais ou menos assim:

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

Posso dizer que havia duas execuções, mas gostaria de poder consultar um intervalo de datas, o número de vezes que o processo foi executado. Gostaria de ter uma consulta que resulte no horário em que o processo foi iniciado e no número de arquivos no grupo. Essa consulta me dá o que eu quero em termos de: posso ver em que dia e hora e quantos arquivos foram executados, mas não exatamente como eu gostaria. E não acomodaria execuções que corriam das 8:58 às 9:04, por exemplo. Também agruparia corridas que começaram às 9:02 e 9:15, por exempl

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)

Entendo que quaisquer execuções próximas umas das outras provavelmente serão agrupadas, e estou bem com isso. Só espero obter um agrupamento aproximado.

Obrigado

questionAnswers(2)

yourAnswerToTheQuestion