【发布时间】:2021-03-03 18:02:00
【问题描述】:
我有一个名为 Sales.OrderValues 的表,其中包含 2 列,即 orderyear 和 val(每天的总销售额)。
这是记录 sn-p(我无法显示所有记录,因为有 830 行)
我想显示这样的结果
但是,我的输出与我的预期输出不同。
如您所见,2008 年 prevtotalsales 的预期产量为 618085.30。但是,我的输出是 825169.29(即 208083.99 + 617085.30)。
以下是我的查询
SELECT
YEAR(D1.orderdate) AS orderyear,
SUM(D1.val) AS curtotalsales,
(
SELECT
SUM(D2.val)
FROM
Sales.OrderValues D2
WHERE
YEAR(D1.orderdate) > YEAR(D2.orderdate)
)
AS prevtotalsales
FROM
Sales.OrderValues D1
GROUP BY
YEAR(D1.orderdate);
不加下一年的totalsales如何显示上一年totalsales的SUM?
【问题讨论】:
-
缺一年怎么办?
标签: sql sql-server sum subquery aggregate-functions