oracle wm_concat(column)函数的使用不同公司支付同一客商(行转列)|转|

http://database.51cto.com/art/201010/231126.htm

oracle wm_concat(column)函数使我们经常会使用到的,下面就教您如何使用oracle wm_concat(column)函数实现字段合并,如果您对oracle wm_concat(column)函数使用方面感兴趣的话,不妨一看。

shopping:

-----------------------------------------

u_id       goods            num

------------------------------------------

1                苹果                2

2                 梨子               5

1                 西瓜               4

3                 葡萄               1

3                香蕉                1

1               橘子                 3

=======================

想要的结果为:

--------------------------------

u_id          goods_sum

____________________

1              苹果,西瓜,橘子

2              梨子

3              葡萄,香蕉

---------------------------------

1   select u_id, wmsys.wm_concat(goods) goods_sum   
2   from shopping      
3   group by u_id  

想要的结果2:

--------------------------------

u_id          goods_sum

____________________

1              苹果(2斤),西瓜(4斤),橘子(3斤)

2              梨子(5斤)

3              葡萄(1斤),香蕉(1斤)

---------------------------------

使用oracle wm_concat(column)函数实现:

1     select u_id, wmsys.wm_concat(goods || '(' || num || '斤)' ) goods_sum  
2     from shopping    
3     group by u_id    

我在itpub的发帖:[PL/SQL] 大家来研究sql:不同公司给同一个客商支付|结贴|

2012-11-30  12:59:36 更新

 1 select 收款单位名称,付款单位数目,wmsys.wm_concat(付款单位||'(' ||付款总金额 || ''||','||付款次数||'次)') 详情 
 2 from(
 3  select unitname "付款单位",
 4         custcode "收款单位编码",
 5         custname "收款单位名称",
 6         sum_bbye "付款总金额",
 7         cnt1     "付款次数",
 8         cnt2     "付款单位数目"
 9    from (select substr(bd_corp.unitname,3,2) unitname,
10                 bd_cubasdoc.custcode,
11                 bd_cubasdoc.custname,
12                 sum(arap_djfb.bbye) sum_bbye,
13                 count(bd_corp.unitcode) cnt1,
14                 count(bd_corp.unitname) over(partition by bd_cubasdoc.custname) cnt2
15            from bd_cubasdoc,
16                 arap_djfb,
17                 bd_cumandoc,
18                 arap_djzb,
19                 bd_corp
20           where arap_djfb.ksbm_cl = bd_cumandoc.pk_cumandoc
21             and bd_cumandoc.pk_cubasdoc = bd_cubasdoc.pk_cubasdoc
22             and arap_djfb.vouchid = arap_djzb.vouchid
23             and bd_corp.pk_corp = arap_djzb.dwbm
24             and arap_djfb.payflag in ('1', '2')
25             and arap_djfb.dr = '0'
26           group by unitname,
27                    bd_cubasdoc.custname,
28                    bd_cubasdoc.custcode)
29  where cnt2 >= 2)
30  group by  收款单位名称,付款单位数目
31  order by  收款单位名称

 

原文地址:https://www.cnblogs.com/sumsen/p/2788910.html