日期:2014-05-18 浏览次数:20460 次
select 品名, sum(case when month(日期)=5 then 数量 else 0 end) as [5月数量], sum(case when month(日期)=6 then 数量 else 0 end) as [6月数量], sum(case when month(日期)=7 then 数量 else 0 end) as [7月数量], sum(case when month(日期)=8 then 数量 else 0 end) as [8月数量] from tb group by 品名
------解决方案--------------------
SELECT 品名,5月数量 ,6月数量,7月数量, 8月数量
FROM
(SELECT 品名 ,SUBSTRING(日期,5,1)+'月数量', 数量
FROM 表名) p
PIVOT
(
SUM(数量)
FOR 日期 IN
( 5月数量 ,6月数量,7月数量, 8月数量 )
) AS pvt
--日期的类型我当字段处理了,如果是datetime可以参考楼上替代p表