select sum(decode(商品,0001,0,商品)),sum(decode(商品,0002,0,商品))
,.........from your_tab group by 月份

解决方案 »

  1.   

    select sum(decode(商品,0001,0,商品)),sum(decode(商品,0002,0,商品))
    ,.........from your_tab group by 月份
      

  2.   

    楼上说得没错,不过最好加上别名select sum(decode(商品,0001,0,商品)) 商品1,sum(decode(商品,0002,0,商品)) 商品2  
    ,.........from your_tab group by 月份
      

  3.   

    能解释解释为什么要用 decode(商品,0001,0,商品)吗?
    THX
      

  4.   

    我觉得应该是这样吧:
    select 月份,sum(decode(商品id,0001,商品售额,0)) as 商品1,sum(decode(商品,0002,商品售额,0)) as 商品2  
    ,.........from your_tab group by 月份
      

  5.   

    问题没这么简单,因为月份是十二个字段,而不是一个字段,怎么能按月份分组呢?
    应该这样:
    select '1月' 月份,max(decode(商品,0001,1月)) ID0001,max(decode(商品,0002,1月)) ID0002,  
    ,.......max(decode(商品,0006,1月))id0006 from your_tab 
    union
    select '2月' 月份,max(decode(商品,0001,2月))id0001,max(decode(商品,0002,2月))id0002,  
    ,.......max(decode(商品,0006,2月))id0006 from your_tab 
    .
    .
    .
    .
    .
    .
    union
    select '12月' 月份,max(decode(商品,0001,12月))id0001,max(decode(商品,0002,12月))id0002,  
    ,.......max(decode(商品,0006,12月))id0006 from your_tab 这个SQL有些冗长,不知又没更好的办法?
      

  6.   

    不用0也是可以的。因为SUM某列时其中几行是NULL的话结果还是会出来的。