sql - T-SQL 查询以汇总每年每月的总金额以及迄今为止的累计金额
问题描述
我有一个捕获每个销售事务的数据库表:
Transactions
(
ID INT,
TransactionDate DATETIME,
SalesAmount MONEY
)
我想编写一个返回报告的T-SQL查询(下面的快照示例)。第一列列出了月份,下一列列出了一年内每月的总销售额,最后一列列出了该年截至本月的累计金额。仅适用于 2018 年。
有什么想法或解决方案吗?谢谢你。
解决方案
试试这个:
;with cte as
(
Select
YEAR(TransactionDate) as [Year],
MONTH(TransactionDate) as [Month],
SUM (SalesAmount) as [MonthlySales],
DATEPART(m, TransactionDate) as [MonthNumber]
from Transactions
group by YEAR(TransactionDate), MONTH(TransactionDate)
)
select
a.[Month], a.MonthlySales as [MonthlySales 2018], SUM(b.MonthlySales) as [Cumulative 2018]
from cte a inner join cte b on a.MonthNumber >= b.MonthNumber
WHERE (a.[Year]) = 2018 AND (b.[Year]) = 2018
group by a.[Month], a.MonthlySales
ORDER by a.[Month]
推荐阅读
- c# - 如何将用户名和密码传递给 html begin 表单?
- javascript - 如何在查询字符串中转换数组多维?
- javascript - JavaScript 切换/显示问题
- hbase - 正则表达式可以在 jmxtrans attr 级别上使用吗?
- pybind11 - 在 pyDrake 中将两个植物添加到场景图中时出现 Python 绑定错误
- git - 如何将主分支合并到主分支
- python - 丢弃数据框中不需要的点
- powerbi - dax - 计算日期之间的行数
- javascript - 来自控制台错误的 AngularJS 未知提供程序
- bash - 哪个 gcc 版本引入了`-fstack-protector-strong`?