sq中如何生成自定义销售分析报告

How to generate custom sales analysis report in sq

假设我的table是

CREATE TABLE SALESS (id int, product int, salesdate DATETIME, amount float)
INSERT INTO SALESS VALUES 
(1, 1, '2020-10-10', 500),
(1, 1, '2020-11-10', 300),
(1, 1, '2020-12-10', 200),
(1, 2, '2020-10-10', 300),
(1, 2, '2020-11-10', 1000),
(1, 2, '2020-12-10', 200)

我的查询是

select product, year(salesdate) 'year', month(salesdate) 'month', sum(amount)'total maount' from SALESS
group by product, year(salesdate), month(salesdate)
order by product, year(salesdate), month(salesdate)

给我结果

我需要的结果如下所示,如何修改我的查询以获得此结果?

您可以使用条件聚合:

select year(salesdate) as year, month(salesdate) as month, 
       sum(case when product = 1 then amount else 0 end) as amount_1,
       sum(case when product = 2 then amount else 0 end) as amount_2
from SALESS
group by year(salesdate), month(salesdate)
order by year(salesdate), month(salesdate);

如果您真的想为 2021 年添加三个空行,可以在 order by 之前添加:

union all
select v.year, null, null
from (values (2021), (2021), (2021)) v(year)