• 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  收款单位名称

     

  • 相关阅读:
    python之openpyxl模块(最全总结 足够初次使用)
    随笔 遇见
    浅析企业服务器安全防护的七个切入点
    jQuery.API源码深入剖析以及应用实现(1) - 核心函数篇
    常用Javascript精选(二)
    随笔 生活与生命
    jquery插件 8个很有用的jQuery插件
    jquery插件 5个小插件
    常用Javascript精选(一)
    jQuery库与其他JS库冲突的解决办法(转)
  • 原文地址:https://www.cnblogs.com/sumsen/p/2788910.html
Copyright © 2020-2023  润新知