2016-12-08 16 views
0

現在、インポートされたファイルからデータベースに処理されるデータ項目の結果を返すSQLスクリプトがありますが、定義された日に5分間の間隔でデータベースに入ります。SQL Server 2008 - 結果を5分間隔でグループ化する

次のように私の既存のスクリプトは次のとおりです。

declare @date datetime 
set @date = '2016-12-07 00:00:00.000 

Select filename, IE.dateprocessingstarted 
    from tdii_inboundprocessed IE 
    inner join consignmentpf cpf 
     on ie.inboundfileprocessedid = cpf.inboundprocessedid 
where 1=1 and (ie.dateprocessingstarted between `@date` and `dateadd(dd,1,@date)` 

は、これは次の値を返します。

FilenameDate ProcessingStarted

GOOD813546 2016年12月7日午後12時02分○○秒
GOOD813546 2016から12 -07 00:02:00
GOOD8135462016-12-07 00:02:00
GOOD813546 2016-12-07 00:02:00
GOOD813546 2016年12月7日夜12時02分00秒
GOOD813546 2016年12月7日夜12時02分00秒
GOOD813554 2016年12月7日午前0時08分00秒
GOOD813554 2016年12月7日0時08分:私は見てみたいと思いますどのような00
GOOD813554 2016年12月7日0時08分00秒
GOOD813554 2016年12月7日0時08分00秒

は次のとおりです。
日時NUMBEROFFILES
2016から12 -07 00:05:00 6
2016-12-07 00:10:00 4

など

tdii_inboundprocessedテーブルは、我々はconsignmentpf表は、特定のファイル内のアイテムの詳細が含まれています)dateprocessingstartedに興味を持っている時間を含めて、システムに入ってくるファイルの詳細が含まれており、これは我々が興味を持っている数でありますのカウントを得ることに。

は、いくつかのサンプルデータと予想される結果を示し、それに沿って説明してください任意のヘルプ

+0

いただき、ありがとうございます – TheGameiswar

答えて

0
SELECT t.date , 
     COUNT(*) 
FROM (SELECT DATEADD(MINUTE, 
          ((DATEDIFF(MINUTE, @date, 
             IE.dateprocessingstarted)/5) * 5) 
          + 5, @date) [date] 
      FROM  @tdii_inboundprocessed IE 
        INNER JOIN consignmentpf cpf ON IE.inboundfileprocessedid = cpf.inboundprocessedid 
      WHERE  1 = 1 
        AND (IE.dateprocessingstarted BETWEEN @date 
                AND  DATEADD(dd, 1, 
                   @date)) 
     ) AS t 
GROUP BY t.date; 
関連する問題