sql - SQL根据数据按月计算汇总数据
问题描述
我有一张巨大的桌子,上面有几个月的产品订单历史。我想展平表格以将列作为日期字段,其中包含订购的总金额。见下表:
理想的输出是:
我已经尝试过案例陈述
Case when ReportMonth = '2021-07-01' then sum(total) end as '2021-07-01',
Case when ReportMonth = '2021-06-01' then sum(total) end as '2021-06-01',
Case when ReportMonth = '2021-05-01' then sum(total) end as '2021-05-01',
Case when ReportMonth = '2020-05-01' then sum(total) end as '2020-05-01',
但后来我得到空值和更多记录。
解决方案
CASE
考虑通过在内部运行语句来反转嵌套表达式SUM
:
SELECT
Parent_Org
-- , ...other group columns
, Category
, SUM(CASE WHEN ReportMonth = '2021-07-01' THEN total END) AS '2021-07-01'
, SUM(CASE WHEN ReportMonth = '2021-06-01' THEN total END) AS '2021-06-01'
, SUM(CASE WHEN ReportMonth = '2021-05-01' then total END) AS '2021-05-01'
, SUM(CASE WHEN ReportMonth = '2020-05-01' THEN total END) AS '2020-05-01'
FROM myTable
GROUP BY
Parent_Org
-- , ...other group columns
, Category
推荐阅读
- javascript - 将自定义标题添加到 Content-disposition 旁边的 FormData/multipart
- python - 是否可以将类对象附加到“__all__”?
- javascript - 使用带有数据库的html中的setInterval从地图中移动(更新)L.marker?
- flutter - 如何在颤动的下一页中打开视频?
- python - 使用 pandas to_datetime 识别错误的日期
- django - /videos/create_video/ 的 TypeError 应为 str、bytes 或 os.PathLike 对象,而不是 int
- javascript - ReactJS-无法从材料表中的Action单击处理程序上的rowData获取属性
- angular - 派生和子类化指令以便 ContentChildren 可以找到它?
- c++ - 如何使用 cmake 正确链接库?
- javascript - 如果其他 div 中的 div 具有类,则将类添加到顶级 div