- SQL code
表A数据:编号 地区 类型 时间 数量 9 湖南区 修旧物资 201209 56 9 湖南区 修旧物资 201209 73 9 湖南区 烟煤 201209 2 9 湖南区 药品 201209 65 9 湖南区 助磨剂 201209 60 9 湖南区 药品 201209 75 10 湖北区 PC32.5 201101 34 10 湖北区 PC32.5 201101 48 10 湖北区 PC32.5(资源综合利用) 201101 35 10 湖北区 PC32.5(资源综合利用) 201101 49 10 湖北区 PII42.5 201101 28
查询结果:
- SQL code
项目 江西 湖北 湖南大区 煤炭 33 21 32修旧物资 43 56 43 助磨剂 22 43 23PC32.5 32 12 43PII42 44 32 12其他煤 13 11
求方式方法,求sql语句。
------解决方案--------------------
select *
from (select 类型,地区,sum(数量) as 数量 from A group by 类型,地区) as a
pivot(sum(数量) for 地区 in ([江西],[湖北],[湖南大区])) as b
------解决方案--------------------
- SQL code
DECLARE @s VARCHAR(MAX)SELECT @s = ISNULL(@s + ',') + QUOTENAME(地区)FROM AGROUP BY 地区 EXEC('SELECT *FROM ( SELECT 类型 , 地区 , SUM(数量) AS 数量 FROM A GROUP BY 类型 , 地区 ) AS a PIVOT( MAX(数量) FOR 地区 IN ('+@s+') ) as pvt')