2

データの列全体の合計を取得し、各行の合計から現在の小計を差し引くという複雑な操作を実行しようとしています。Sum と Running Subtotal のコンポーネント パーツを単独で実行できます。小計の実行にこれを使用しました:

sum(UsageMetric) over(order by Nested1.IDNumber) as RunningTotal

ただし、それらを取得しようとすると、次のエラーが発生します。

サブクエリが複数の値を返しました。サブクエリが =、!=、<、<=、>、>= の後にある場合、またはサブクエリが式として使用されている場合、これは許可されません。

だから私はこれを装備し、それは特定の行の「スタンドアロン」実行中の小計を返します。

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 ごとにこれを実行することです。

4

1 に答える 1

2

If I understand you correctly, you could do the following:

sum(UsageMetric) over () -
sum(UsageMetric) over (order by Nested1.IDNumber) as ...

Although simply reverting the order of rows in the OVER clause would yield the same results, I believe:

sum(UsageMetric) over (order by Nested1.IDNumber DESC) as ...
于 2013-01-27T08:07:17.480 に答える