有这样一个需求,如下:
表A中:
lsh        wlh      sl 
1001       aaa      10
1001       bbb      11
1001       ccc      30
1002       bbb      40
1003       ccc      55
1003       aaa      60我想根据wlh分组,在结果集中将lsh以'lsh,lsh...'这样的方式连接起来,sl求和就可以了
这样的需求可以通过查询sql实现吗?可以的话怎么做,希望各位朋友帮帮俺,不胜感激!如果要通过过程或者方法实现的话,请再看下下面的需求,
还有一张表B:
code        wlh      sl 
10011       aaa      110
10012       bbb      111
10014       ccc      310
10023       bbb      410
要连接这两个结果集,相同的wlh为一行,这样的话code字段也要以'code,code...'这种方式连接,请问各位有什么好的办法吗?谢谢啊

解决方案 »

  1.   


    --我想根据wlh分组,在结果集中将lsh以'lsh,lsh...'这样的方式连接起来,sl求和就可以了
    with t as(
         select '1001' lsh,'aaa' wlh,10 sl from dual union all
         select '1001','bbb',11 from dual union all
         select '1001','ccc',30 from dual union all
         select '1002','bbb',40 from dual union all
         select '1003','ccc',55 from dual union all
         select '1003','aaa',60 from dual)
    select lsh,wm_concat(wlh) wlh,sum(sl) sl
    from t
    group by lsh;
    LSH  WM_CONCAT(WLH)                   SUM(SL)
    ---- -------------------------------- ----------
    1001 aaa,bbb,ccc                              51
    1002 bbb                                      40
    1003 ccc,aaa                                 115
      

  2.   

    wm_concat oracle哪个版本后有?
      

  3.   


    oracle wm_concat字符串连接函数
      

  4.   

    行列转换 decodehttp://blog.csdn.net/voyage_mh1987/archive/2010/09/08/5871690.aspx