首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

求一查询方法解决思路

2012-11-04 
求一查询方法SQL code表A数据:编号地区类型时间数量9湖南区修旧物资201209569湖南区修旧物资201209739湖南

求一查询方法

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') 

热点排行