select sum(decode(a,<value1>,1,0)) ,
 sum(decode(a,<value2>,1,0)).
 sum(decode(a,<value3>,1,0)),
 sum(decode(a,<value4>,1,0)),
 sum(decode(a,<value5>,1,0))
from temp

解决方案 »

  1.   

    原显示:
    代码 类别  值
    ---- ----  --
    1    a     value1
    1    b     value2
    1    c     value3
    1    d     value4
    1    e     value5
    2    a     value6
    2    b     value7
    2    c     value8目标显示
    代码   a      b      c      d      e
    ----   -      -      -      -      -
    1      value1 value2 value3 value4 value5 
    2      value6 value7 value8刚刚表达不清,现举例说明
      

  2.   

    不可能用一个sql达到你的要求!
      

  3.   

    我又联想起一道题:
    原显示:
    代码 类别  值
    ---- ----  --
    1    a     value1
    1    b     value2
    1    c     value3
    1    d     value4
    1    e     value5
    2    a     value6
    2    b     value7
    2    c     value8目标显示
    1      1      1      1      1      2      2      2
    a      b      c      d      e      a      b      c
    value1 value2 value3 value4 value5 value6 value7 value8 
      

  4.   

    其实说白了,这就是上大学时我们学“线性数学”的矩阵变换问题
    即A(mn)=A(nm)的问题。
    完成方式一定是通过数组。
    golden及plsql developer都有这样的功能
    我认为不是通过delphi就是通过vc或c++builder完成的。
      

  5.   

    提问的时候就感觉sql不能完成
    只是想听听高手的意见
    再放两天
    没办法就程序吧!
    另,大家注意身体,千万别非典。
      

  6.   

    如果说记录数确定,一个sql是可以的
    如果记录数不确定,用一个过程即可,tom就写过这个过程的源代码
      

  7.   

    有很多帖子了,不可能用一条SQL完成的
      

  8.   

    第一问数据量不多,还可以用一条语句实现
    select 代码,sum(decode(类别,a,值)) a,
          sum(decode(类别,b,值)) b,
          .......
         from table
         group by 代码;第二问,基本成为不可能,把有记录设成一行,那行长度不可预知,不赞成这样做法.
      

  9.   

    佩服佩服
    不过若值的类型为char就不能做sum了