这样是数据怎么拼接成两条记录,CRM→旧方案→薪酬与考评管理→营销薪酬报表→自定义报表管理→新增 和CRM→考核与薪酬→综合报表→自定义报表→新增orclewmsys.wm_concat

解决方案 »

  1.   

    wm_concat函数在12c中已经废弃,建议楼主用listagg,更灵活方便
      

  2.   

    给个例子。wm_concat 函数。
    with tableA as 
    (
         select 1 aid,'小明' code from dual union all
         select 2 aid,'小红' code from dual union all
         select 3 aid,'小忆' code from dual 
    ),tableB as
    (
         select 1 bid,1 aid,'数学' km,100 fs from dual union all  
         select 2 bid,1 aid,'语文' km,99 fs from dual union all 
         select 3 bid,1 aid,'英语' km,88 fs from dual union all 
         select 4 bid,2 aid,'数学' km,77 fs from dual union all 
         select 5 bid,2 aid,'语文' km,66 fs from dual union all 
         select 6 bid,2 aid,'英语' km,55 fs from dual  
    ),tableC as
    (
         select 1 cid,1 aid,'补数学课' bk,5 c from dual union all   
         select 2 cid,1 aid,'补语文' bk,5 c from dual union all
         select 3 cid,1 aid,'补英语' bk,3 c from dual union all
         select 4 cid,2 aid,'补数学课' bk,1 c from dual union all
         select 5 cid,2 aid,'补语文' bk,2 c from dual union all
         select 6 cid,2 aid,'补英语' bk,5 c from dual 
    )
    SELECT tableA.aid,tableA.code,wm_concat(tableB.km||'('||tableB.fs||'),'||tableC.bk||'('||tableC.c||')')  from tableA,tableB,tableC WHERE tableA.aid=tableB.aid
    AND tableA.aid=tableC.aid AND tableB.bid=tableC.cid GROUP BY tableA.aid,tableA.code
      

  3.   

    个人觉得楼主写一个后台方法,然后输出记录。
    思路:
    找到FID=0的记录合集,
    然后循环(循环内以当前记录的id作为下一条的fid,直到找不到记录,拼接descirbe字段信息,跳出循环)
    最终输出想要的记录集。