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)
假设我的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)