SELECT LOCAL,(CASE WHEN PRODUCTS='A' TEHN NUMBER ELSE 0 END )AS A,
(CASE WHEN PRODUCTS='B' TEHN NUMBER ELSE 0 END )AS B,
(CASE WHEN PRODUCTS='C' TEHN NUMBER ELSE 0 END )AS C,
(CASE WHEN PRODUCTS='D' TEHN NUMBER ELSE 0 END )AS D,
FROM table

解决方案 »

  1.   

    先谢了,不过要是产品种类A,B,C,D不知道多少,区域也很多,怎么办?
      

  2.   


    create table aaa(LOCAL varchar (4),PRODUCTS varchar (5),NUMBER int )insert into aaa
    select '北京','A', 10 union
    select '北京','B',  12 union
    select '北京','D',              123 union
    select '上海','A',              257 union
    select '上海','C', 142 union
    select '天津','D', 214 union
    select '北京','A', 20 union
    select '北京','B',  20 union
    select '北京','D',              123 union
    select '上海','A',              76969 union
    select '上海','C', 2536declare @str2 varchar(8000)
    set @str2=''
    select @str2=@str2+',sum(case when products='''+products+''' then number else 0 end) '+''''+products+''''
    from aaa group by products
    exec ('select local '+@str2+' from aaa group by local')
      

  3.   

    local   A       B       C       D
    -----   -----   -----   ------  -----
    北京 30 32 0 123
    上海 77226 0 2678 0
    天津 0 0 0 214
      

  4.   

    谢谢各位的帮助,另外 我想问问的是,如果区域:很多,不只北京,上海,天津品名也很多,不只A,B,C,D有没有别的办法自动完成呢?
      

  5.   

    oracle 嘿嘿
    就不会了!!
    不好意思
      

  6.   

    yesterday2000(一笑而过) :你好,请问你生成的统计表名是什么?谢谢
      

  7.   

    to yesterday2000(一笑而过) ( ):
    为何group by后不跟哦local呢?