【发布时间】:2013-06-06 05:32:56
【问题描述】:
好的,我已经用谷歌搜索和搜索,但仍然无法得到这个。
实际上,在包含数百行的表中,一列具有唯一标识符(不是 PK,也不是真正唯一,但是嘿),另一列具有数值。
唯一标识符 (UI) 仅在该表中是唯一的,并且是递增的,因为最大的数字表示最近的表条目。
实际上,我需要使用 WHERE 子句将行分解为相关行,然后获取这些行的最新 UI 以及这些行的值的总和。
即如果 UI 是 1, 3, 5, 7, 10 并且聚合函数的对应值是 100, 300, 500, 700 和 1000,我需要作为查询结果的 UI 10, Sum 2600。
数据库是 SQL2000
我如何做到这一点?
【问题讨论】:
-
我不明白您的问题...您能否详细说明一下表格的实际外观以及您想要提取的数据??
-
听起来greatest-n-per-group 可能会导致一些相关的事情..
-
@John,好的,我会试试的。表中的一列记录了与金融交易相关的货币金额。另一列记录财务价值。所有交易都记录在同一张表中,每笔交易都有一个参考编号,每记录一次金融交易,该编号就会增加。因此,您可能有参考 1,值 1000,描述当前账户,下一行可能是参考 1,值 -1000,描述储蓄账户。在其中几个之后,需要一份报告。这个想法是根据标准对值求和并获得最后一个参考号以确定截止点
-
@John 试图进一步澄清,可以使用 2 个单独的查询:1.) SELECT SUM(value col) as SumV FROM Table WHERE(Clause) 2.) SELECT TOP(1) ReferenceNo AS LastRecorded FROM Table WHERE(Same Clause) ORDER BY ReferenceNo DESC。我需要的是结合 2 个查询来得到 LastRecorded, SumV 的结果
标签: sql-server-2000 aggregate where-clause