请问 sqlserver 各个商品各月销售额统计 sql语句怎么写?表结构:oid 流水号,pid 商品编码,date 销售日期,count 销售数量现在要统计各个商品的年销售额 各月销售额希望结果:商品编码 年销售额

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/11 19:25:41
请问 sqlserver 各个商品各月销售额统计 sql语句怎么写?表结构:oid 流水号,pid 商品编码,date 销售日期,count 销售数量现在要统计各个商品的年销售额 各月销售额希望结果:商品编码 年销售额

请问 sqlserver 各个商品各月销售额统计 sql语句怎么写?表结构:oid 流水号,pid 商品编码,date 销售日期,count 销售数量现在要统计各个商品的年销售额 各月销售额希望结果:商品编码 年销售额
请问 sqlserver 各个商品各月销售额统计 sql语句怎么写?
表结构:oid 流水号,pid 商品编码,date 销售日期,count 销售数量
现在要统计各个商品的年销售额 各月销售额
希望结果:
商品编码 年销售额 一月销售额 二月销售额 .十二月销售额
单独统计出来各列很简单 ,请问如何在sql里生成上面的表结构?

请问 sqlserver 各个商品各月销售额统计 sql语句怎么写?表结构:oid 流水号,pid 商品编码,date 销售日期,count 销售数量现在要统计各个商品的年销售额 各月销售额希望结果:商品编码 年销售额
;with  cte_tot as( 
   select PID,sum(count) totalmoney,convert(varchar(10),month(date))+'月' date
  from 数据表 with(nolock) where date between '2013-01-01' and '2013-08-15' group by PID,month(date) )
 
select PID, sum(totalmoney) as totalmoney, sum(case date when '1月' then totalmoney else null end) as '1月' ,
sum(case date when '2月' then totalmoney else null end) as '2月' ,
sum(case date when '3月' then totalmoney else null end) as '3月' ,
sum(case date when '4月' then totalmoney else null end) as '4月' ,
sum(case date when '5月' then totalmoney else null end) as '5月' ,
sum(case date when '6月' then totalmoney else null end) as '6月' ,
sum(case date when '7月' then totalmoney else null end) as '7月' ,
sum(case date when '8月' then totalmoney else null end) as '8月' ,
sum(case date when '9月' then totalmoney else null end) as '9月' ,
sum(case date when '10月' then totalmoney else null end) as '10月' ,
sum(case date when '11月' then totalmoney else null end) as '11月' ,
sum(case date when '12月' then totalmoney else null end) as '12月' 
from cte_tot group by PID

看看是否你要的结果