我正在尝试使用 Visual Studio SSRS 2008 从 SQL 数据库中提取计算数据。尝试在我的 select/from/where 语句中使用条件时遇到问题。我正在尝试做的一个例子是从每 5 分钟采集的样本中找到 24 小时内(从昨天上午 10:00 到今天上午 10:00)销售的 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