按月编写 SQL 查询
Posted
技术标签:
【中文标题】按月编写 SQL 查询【英文标题】:Write SQL Query by Month 【发布时间】:2021-12-02 14:44:58 【问题描述】:对于下面的 Excel table
,如何将Orders
列与month
相加?我编写了以下查询,但我必须为接下来的每个月更改查询,这似乎是一个非常手动的过程。提前致谢。
更新:
通过提供 2 个不正确但非常手动的每月计算来对冲我的答案(需要调整每个后续月份或年份的查询)。
第 1 部分 - 计算 1 个总数:
SELECT SUM(orders)
FROM table
第 2 部分 - 每个月计算 1 个数字:
SELECT SUM(orders)
FROM table
WHERE summary_date BETWEEN #01/01/2015# AND #01/31/2015#;
【问题讨论】:
为什么不创建一个数据透视表呢?这本身就知道如何按月汇总。 是的,我认为还有其他可能性,但我被要求在 SQL 中使用 SQL 查询来完成。 使用 SQL,您可以使用 MONTH() 函数和 GROUP BY()。 谢谢@Duston - 就是这样。看起来如何,我需要使用 As 定义任何变量吗?谢谢 【参考方案1】:数据:
sellDate qty
2021-01-15 1
2021-01-21 2
2021-02-21 2
2021-02-01 29
2021-01-15 1
2021-01-15 1
2021-01-15 1
2020-02-01 29
2021-01-15 1
查询
select year(selldate), month(selldate) as month, count(selldate) as qty, sum(qty) as amt
from [wrox].[dbo].[Test]
where selldate is not null
group by year(selldate), month(selldate)
结果
year month qty amt
2021 1 6 7
2020 2 1 29
2021 2 2 31
如果您不想将年份和月份放在不同的列中,可以将它们连接起来。但这看起来就像您要求的那样。
顺便说一句,这是 MS SQL 2014。
【讨论】:
谢谢@Duston!以上是关于按月编写 SQL 查询的主要内容,如果未能解决你的问题,请参考以下文章