1 時間ごとに SUMmations が必要な場合に完全に機能する SQL ステートメントがあります (SQL Server 2008)。はDATEPART(HOUR, DATE_TIME)
私のためにすべての素晴らしい仕事をしています。
SELECT SUM(case STATION_ID when 'S-WELDCHK' then 1 else 0 end) as WELDCHK
,SUM(case STATION_ID when 'S-GLUING-OUT-OK' then 1 else 0 end) as GLUING
,SUM(case STATION_ID when 'S-GLUING-OUT-NOK' then 1 else 0 end) as 'GLUING-NOK'
,SUM(case STATION_ID when 'S-ULTRAWELD-OUT-OK' then 1 else 0 end) as ULTRAWELD
,SUM(case STATION_ID when 'S-ULTRAWELD-OUT-NOK' then 1 else 0 end) as 'ULTRAWELD-NOK'
,SUM(case STATION_ID when 'S-BOLTFAST-OUT-OK' then 1 else 0 end) as BOLTFAST
,SUM(case STATION_ID when 'S-BOLTFAST-OUT-NOK' then 1 else 0 end) as 'BOLTFAST-NOK'
,SUM(case STATION_ID when 'S-MAPVISION-OUT-OK' then 1 else 0 end) as MAPVISION
,SUM(case STATION_ID when 'S-MAPVISION-OUT-NOK' then 1 else 0 end) as 'MAPVISION-NOK'
,SUM(case STATION_ID when 'S-CHECKFIX-OUT-OK' then 1 else 0 end) as CHECKFIX
,SUM(case STATION_ID when 'S-CHECKFIX-OUT-NOK' then 1 else 0 end) as 'CHECKFIX-NOK'
,SUM(case STATION_ID when 'S-EJOT-OUT-OK' then 1 else 0 end) as EJOT
,SUM(case STATION_ID when 'S-EJOT-OUT-NOK' then 1 else 0 end) as 'EJOT-NOK'
FROM [dbFactory].[dbo].[Events]
where (DATEPART(yy,DATE_TIME) = 2014
AND DATEPART(mm,DATE_TIME) = 2
AND DATEPART(dd,DATE_TIME)= 5)
GROUP BY
DATEPART(HOUR, DATE_TIME)
with rollup
私が実際に欲しいのは、一時テーブルにある不規則な期間のSUMSです(簡潔にするために切り捨てられています)
Start Finish
06:00:00.000 06:30:00.000
06:30:00.000 07:30:00.000
07:30:00.000 08:30:00.000
08:30:00.000 09:30:00.000
09:30:00.000 10:00:00.000
10:00:00.000 10:30:00.000
10:30:00.000 11:30:00.000
11:30:00.000 12:30:00.000
12:30:00.000 13:30:00.000
13:30:00.000 14:00:00.000
ウェブサイトに関する提案、またはこれを解決するために何を読むべきか。DATE_TIME
おそらくトランザクションの START および FINISH 期間と を渡すことができるユーザー定義関数をロールアップする機能があるはずです。