Visual Studio SSRS 2008 を使用して、計算されたデータを SQL データベースから取得しようとしています。select/from/where ステートメントで条件を使用しようとすると問題が発生します。私がやろうとしていることの一例は、15 分ごとに採取されたサンプルから 24 時間 (昨日の午前 10:00 から今日の午前 10:00 まで) の失敗の総数を見つけることです。バルブが開いているときにガスがバルブを通過するガスプラントについて報告しています。特定の開いたバルブを通過するガスは、燃焼室で点火されます。この時、バルブが開いていて燃焼室内の温度が1400度以下だと故障です。現在、バルブの状態と燃焼室の温度に関するデータを 15 分ごとに提供するクエリがあります。先ほど言ったように、バルブが開いているステータス 2 のときだけ気にします。同時に燃焼室の温度は 1400 度未満です。現在のクエリと結果データのサンプルを以下にコピーしました。ご覧のとおり、現在のクエリには必要な条件が含まれていません。次のようなコードを追加する必要があります。
COUNT (IF RTO_FCV601_SSTS=2 AND RTO_COMB1TEMP < 1400)
SET NOCOUNT ON
DECLARE @StartDate DateTime
DECLARE @EndDate DateTime
SET @StartDate = DateAdd(HOUR,-24,GetDate())
SET @EndDate = GetDate()
SET NOCOUNT OFF
SELECT temp.TagName ,DateTime,Value
From (
SELECT *
FROM History
WHERE History.TagName IN ('RTO_FCV601_STS','RTO_COMB1TEMP')
AND wwRetrievalMode = 'Cyclic'
AND wwCycleCount = 96
AND wwVersion = 'Latest'
AND DateTime >= @StartDate
AND DateTime <= @EndDate) temp
WHERE temp.StartDateTime >= @StartDate
Resulting data:
TagName DateTime Value
RTO_FCV601_STS 2013-04-08 15:44:40.6600000 2
RTO_COMB1TEMP 2013-04-08 15:44:40.6600000 1663
RTO_FCV601_STS 2013-04-08 15:59:50.1340000 2
RTO_COMB1TEMP 2013-04-08 15:59:50.1340000 1604
RTO_FCV601_STS 2013-04-08 16:14:59.6080000 2
RTO_COMB1TEMP 2013-04-08 16:14:59.6080000 1557
RTO_FCV601_STS 2013-04-08 16:30:09.0810000 0
RTO_COMB1TEMP 2013-04-08 16:30:09.0810000 1704
RTO_FCV601_STS 2013-04-08 16:45:18.5550000 2
RTO_COMB1TEMP 2013-04-08 16:45:18.5550000 1576
RTO_FCV601_STS 2013-04-08 17:00:28.0290000 2
RTO_COMB1TEMP 2013-04-08 17:00:28.0290000 1645
SQL 内でこの問題を解決できない場合は、Visual Studio SSRS 内で方法を見つけられることを願っています。助けてくれてありがとう!