SELECT 名称,'一月' as 月份,一月 as 金额 from tablename group by 名称
UNION
SELECT 名称,'二月' as 月份,二月 as 金额 from tablename group by 名称
UNION
.
.
.
SELECT 名称,'十一月' as 月份,十一月 as 金额 from tablename group by 名称
UNION
SELECT 名称,'十二月' as 月份,十二月 as 金额 from tablename group by 名称

解决方案 »

  1.   


    select name,' 一月',m1 mon from m group by name,m1
    union
    select name,' 二月',m2 mon   from m group by name,m2
    ...union
    select name,' 十二月',m12 mon   from m group by name,m12order by name desc ,mon参考一下喽
      

  2.   

    列变成行
    declare @ varchar(8000)
    set @=''
    select @=@+rtrim(name)+' from t1 union all select ' from syscolumns where id=object_id('t1') 
    set @=left(@,len(@)-len(' from t1 union all select '))
    --print @
    exec('select '+@+' from t1')
    --------------------------------
    一月一月写很麻烦的,这个是sql下的例子,你把它改成oracle就是了
      

  3.   

    SQL> select * from geshi;NAME           一月       二月       三月       四月
    -------- ---------- ---------- ---------- ----------
    张三            100        200        300        400
    李四            300        300        500        800SQL> select name,'一月' 月份,一月 金额 from geshi group by name,一月
      2  union
      3  select name,'二月' 月份,二月 金额 from geshi group by name,二月
      4  union
      5  select name,'三月' 月份,三月 金额 from geshi group by name,三月
      6  union
      7  select name,'四月' 月份,四月 金额 from geshi group by name,四月;NAME     月份       金额
    -------- ---- ----------
    李四     二月        300
    李四     三月        500
    李四     四月        800
    李四     一月        300
    张三     二月        200
    张三     三月        300
    张三     四月        400
    张三     一月        100已选择8行。
      

  4.   

    select 名称 ,月份,sum(金额) from table group by 名称 ,月份 order by 名称 ,月份