我正在尝试执行一项复杂的操作,其中我提取整列数据的总和,并从每行的总和中减去运行小计。我可以单独完成 Sum 和 Running Subtotal 的组成部分。用它来运行小计:
sum(UsageMetric) over(order by Nested1.IDNumber) as RunningTotal
但是,当我尝试组合它们时,我收到此错误:
子查询返回超过 1 个值。当子查询跟在 =、!=、、>= 后面或使用子查询时,不允许这样做
作为一种表达方式。
所以我对此进行了配置,它返回给定行的“独立”运行小计:
declare @TargetNumber BIGINT
Set @TargetNumber=(select Nested1.IDNumber from TargetTable Nested1 where Nested1.IdNumber='1234567890' and (Extraneous Criteria Here))
select sum(Usage.UsageMetric)
from Table_Usage Usage, IDTable IDT
where IDT.IDNumber <= @TargetNumber
and (Extraneous Criteria Here)
但我真正想做的是能够删除限定符“Nested1.IDNumber='1234567890'”,然后对 TargetTable 中的每个 IDNumber 执行此操作。
如果我理解正确的话,你可以执行以下操作:
sum(UsageMetric) over () -
sum(UsageMetric) over (order by Nested1.IDNumber) as ...
尽管简单地恢复 OVER 子句中的行顺序会产生相同的结果,但我相信:
sum(UsageMetric) over (order by Nested1.IDNumber DESC) as ...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)