【发布时间】:2019-05-01 08:29:32
【问题描述】:
我创建了一个表格来显示年份和月份的总收入,如果之后的总收入大于之前的 10%,我想在表格中添加一列。
我试过了:
select DATEPART(YEAR, OrderDate) AS OrderYear,
DATEPART(MONTH, OrderDate) AS OrderMonth,
ROUND(SUM(UnitPrice*Quantity-Discount),2) AS Total_Revenue,
case when SUM(UnitPrice*Quantity-Discount) > 10 THEN '>10' ELSE '<=10' end my_col
FROM [Order Details], Orders
WHERE Orders.OrderID = [Order Details].OrderID
GROUP BY DATEPART(YEAR, OrderDate), DATEPART(MONTH, OrderDate)
ORDER BY DATEPART(YEAR, OrderDate), DATEPART(MONTH, OrderDate)
我明白了:
我需要得到:
问题是我需要计算上一行和当前行之间的变化百分比,我该怎么做呢?
【问题讨论】:
-
这看起来很像家庭作业...?
-
这是一个家庭作业,我试过了,但没有成功。
-
这个网站不是用来解决家庭作业的。您需要自己弄清楚这些事情,否则您将学不会。我将为您提供的帮助是查看
lag和lead函数。 -
@iamdave OP 实际上在这里分享了他们的尝试,所以我建议这是主题。帮助页面上写着“请求家庭作业帮助的问题必须包括您迄今为止为解决问题所做的工作的总结,以及您在解决问题时遇到的困难的描述。” 他们'已经向我们展示了他们尝试了什么,以及他们追求的结果。没错,他们追求的是
LEAD和LAG。 Eliad,我建议阅读LAG上的文档并展示您的新尝试。如果您不理解语法,请在问题中添加有关您不理解的内容的详细信息。
标签: sql sql-server northwind