SQL - 按日期和年份求和
Posted
技术标签:
【中文标题】SQL - 按日期和年份求和【英文标题】:SQL - SUM BY DATE and YEAR 【发布时间】:2022-01-05 11:09:59 【问题描述】:我正在尝试撰写实时报告。截至目前,我可以按月汇总MONTH(DATEADD(MM, -1, GETDATE()))
,但它会增加 11 月的所有销售额。我需要它根据当前日期-1 个月的月份和年份求和。
P.S 我不能做 YEAR(GETDATE()) = 2021
的 where 子句,因为这需要是一个实时报告,以防我们想让它在过去 14 个月内运行。
SQL
SUM(
CASE
WHEN COALESCE(month(CONVERT(date,CONVERT(varchar(10),salesdwec.shipdate,120),101)), 0) = month(dateadd(mm, -1,getdate())) THEN
salesdwec.orderquantity
ELSE 0
END) AS 'PIROIR_MONTH'
【问题讨论】:
mysql SQL Server - 请更正您的标签。 请提供样本数据和所需结果,以便我们可视化您的要求。 请同时显示您的整个查询,包括您的GROUP BY
子句
嗨@JeanPierre 如果我的回答对您有帮助,您可以接受它作为答案(单击答案旁边的复选标记,将其从灰色切换为已填充。)。这对其他社区成员可能是有益的。谢谢。
【参考方案1】:
如果您正在使用 SQL-Server,那么这应该可以工作。
SELECT YEAR(salesdwec.shipdate) 'Year',MONTH(salesdwec.shipdate) 'Month',SUM(salesdwec.orderquantity)
FROM salesdwec
WHERE DATEDIFF(MONTH,salesdwec.shipdate,GETDATE()) = 1
GROUP BY YEAR(salesdwec.shipdate) ,MONTH(salesdwec.shipdate)
正如Dale K
已经提到的,如果您提供一些示例数据会有所帮助。
编辑:
查询将输出Month
和Year
列以及订单数量。如果您只需要订购数量,您可以使用这个。
SELECT SUM(salesdwec.orderquantity)
FROM salesdwec
WHERE DATEDIFF(MONTH,salesdwec.shipdate,GETDATE()) = 1
【讨论】:
以上是关于SQL - 按日期和年份求和的主要内容,如果未能解决你的问题,请参考以下文章