34,588
社区成员
发帖
与我相关
我的任务
分享
商品名称 销售日期 销售数量
---- -------- -----------
001 2016/1/1 2
001 2016/1/2 1
001 2016/1/5 3
002 2016/1/2 1
002 2016/1/3 5
001 2016/2/1 1
001 2016/2/3 6
003 2016/2/1 2
003 2016/2/2 2
名称 1月数量 2月数量
---- ----------- -----------
001 6 7
002 6 0
003 0 4
WITH a(商品名称,销售日期,销售数量) AS (
select '001','2016/1/1',2 UNION ALL
select '001','2016/1/2',1 UNION ALL
select '001','2016/1/5',3 UNION ALL
select '002','2016/1/2',1 UNION ALL
select '002','2016/1/3',5 UNION ALL
select '001','2016/2/1',1 UNION ALL
select '001','2016/2/3',6 UNION ALL
select '003','2016/2/1',2 UNION ALL
select '003','2016/2/2',2
)
select 商品名称,y,sum([1]) as [1],sum([2]) as [2],sum([3]) as [3]
from (select * ,year(销售日期) as y,month(销售日期) as m from a) aa
pivot (sum(销售数量) for m in ([1],[2],[3])) b
GROUP BY 商品名称,y
select 商品名称,
sum(case detepart(mm,销售日期)=1 THEN 销售数量 ELSE 0 END) as 1月数量,
sum(case detepart(mm,销售日期)=2 THEN 销售数量 ELSE 0 END) as 2月数量
from tab group by 商品名称
SELECT 商品名称,
SUM(CASE WHEN MONTH(销售日期) = 1 THEN 销售数量 ELSE 0 END) AS 1月销售额,
SUM(CASE WHEN MONTH(销售日期) = 2 THEN 销售数量 ELSE 0 END) AS 2月销售额
FROM tb
GROUP BY 商品名称
SELECT 商品名称,YEAR(销售日期) AS 年份,SUM(CASE WHEN MONTH(销售日期)=1 THEN 销售数量 ELSE 0 END) AS [1月销售数量]
,SUM(CASE WHEN MONTH(销售日期)=2 THEN 销售数量 ELSE 0 END) AS [2月销售数量]
FROM TableName
GROUP BY 商品名称,YEAR(销售日期)