Visual Studio SSRS 2008 を使用して、計算されたデータを SQL データベースから取得しようとしています。select/from/where ステートメントで条件を使用しようとすると問題が発生します。私がやろうとしていることの一例は、5 分ごとに採取されたサンプルから、24 時間 (昨日の午前 10 時から今日の午前 10 時まで) に販売された BTU の平均数を見つけることです。バルブが開いているときにバルブを通過するときにガス流量値を持つガスプラントについて報告しています。特定の開いたバルブを流れるガスには、平均化する必要がある BTU 値があります。失敗した現在のクエリを以下にコピーしましたが、必要なものに近いと思います。下記の他の 2 つのタグが > 0 の場合、値を平均したいタグ名は DTE_BTU です。
SET NOCOUNT ON
DECLARE @StartDate DateTime
DECLARE @EndDate DateTime
SET @StartDate = DateAdd(HOUR,-24,GetDate())
SET @EndDate = GetDate()
SET NOCOUNT OFF
SELECT case when temp.Value > 0 and temp2.value > 0 then AVG(Value where tagname ='DTE_BTU') end AS 'AvgDTEBTU'
From (
SELECT *
FROM History
WHERE History.TagName IN ('PGPOL_ProdVlv')
AND wwRetrievalMode = 'Cyclic'
AND wwCycleCount = 288
AND wwVersion = 'Latest'
AND DateTime >= @StartDate
AND DateTime <= @EndDate)as temp join
(SELECT * FROM History
WHERE History.TagName IN ('DTE_C_SCFM')
AND wwRetrievalMode = 'Cyclic'
AND wwCycleCount = 288
AND wwVersion = 'Latest'
AND DateTime >= @StartDate
AND DateTime <= @EndDate)as temp2 on temp.DateTime = temp2.DateTime
WHERE temp.StartDateTime >= @StartDate and temp2.StartDateTime >= @StartDate