有如下数据:
              pname             mver    sver        re                       itype          iversion
-------------------------------------------------------------------------------------------------------------
独立风控系统产品2 V3.0 V3.2 独立风控系统产品小版本备注 开户接口 1.2
独立风控系统产品2 V2.0 V2.1 V2.1小版本备注 交易接口 1.0
独立风控系统产品2 V3.0 V3.1 独立风控系统产品2 小版本备注 行情接口 asdsada
独立风控系统产品2 V2.0 V2.1 V2.1小版本备注 行情接口 aaaaaaaaa
wcm
交易风控结算系统产品1
独立风控系统产品2 V1.0
独立风控系统产品2 V3.0 V3.1 独立风控系统产品2 小版本备注 结算接口 1.02234
独立交易系统产品1
其他产品1
独立风控系统产品2 V2.0 V2.1 V2.1小版本备注 PSIS接口 1.02
独立风控系统产品1 V2.0 V2.1 小版本备注:小版本备注: 开户接口 1.2678
独立风控系统产品2 V3.0 V3.1 独立风控系统产品2 小版本备注 交易接口 1.99
独立风控系统产品1 V2.0 V2.1 小版本备注:小版本备注: PSIS接口 1.02
独立风控系统产品1 V2.0 V2.1 小版本备注:小版本备注: 行情接口 asdsada
独立风控系统产品2 V2.0 V2.1 V2.1小版本备注 开户接口 1.2
独立风控系统产品1 V2.0 V2.1 小版本备注:小版本备注: 结算接口 1.02234如何实现相同sver的itype列和iversion列的合并
用ORACLE如何实现?

解决方案 »

  1.   

    select distinct  pname, mversion, aversion,
                                        ltrim(max(sys_connect_by_path(itype, ';')), ';') as  itype,
                                        ltrim(max(sys_connect_by_path(iversion, ';')), ';') as iversion
     from  (
                         select distinct pname,mversion, aversion,itype,iversion,
                            row_number() over(PARTITION BY aversion ORDER BY aversion) rn,
                            rownum prn 
                           from (
                                              SELECT   distinct  b.name as pname,
                                                            c.VERSIONNO as mversion,
                                                            d.VERSIONNO as aversion,
                                                            f.re as itype,e.VERSION as iversion
                                                        FROM T_DEVUSER a INNER JOIN T_DEVPRODUCT b ON a.USERID = b.USERID
                                                                 LEFT JOIN T_DEVMAINVERSION c ON b.ID = c.PRODUCTID
                                                                 LEFT JOIN T_DEVAUXVERSION d ON c.ID = d.MAINVERSIONID
                                                                 LEFT JOIN T_DEVCHOOSE e ON d.ID = e.AUXID
                                                                  LEFT JOIN tech.t_dict f ON f.dictvalue = e.type  and f.classid = 0179
                                                                  left join t_blobfile g on g.fileid = b.explainfileid
                                                        WHERE 1=1  and a.abbr like '%kjben1%'
                                        )
              )
    START WITH rn = 1 
    CONNECT BY prn - 1 = PRIOR prn AND aversion = PRIOR aversion 
    GROUP BY  pname,mversion, aversion
    ORDER BY mversion,aversion
    这样为什么不对?(以上表删除re列)
      

  2.   

                  pname             mver    sver     itype          iversion
    --------------------------------------------------------------------------
    独立风控系统产品2 V3.0 V3.1 PSIS接口 1.02
    独立风控系统产品1 V2.0 V2.1 结算接口 1.02234
    独立风控系统产品2 V3.0 V3.1 交易接口 1.99
    独立风控系统产品2 V3.0 V3.1 开户接口 1.2
    独立风控系统产品1 V2.0 V2.1 行情接口 asdsada
    独立结算系统产品
    交易风控综合系统产品
    独立风控系统产品2 V3.0 V3.1 结算接口 1.02234
    交易风控结算系统产品1
    独立风控系统产品1 V2.0 V2.1 PSIS接口 1.02
    独立风控系统产品1 V2.0 V2.1 交易接口 1.0
    独立风控系统产品2 V3.0 V3.1 行情接口 asdsada
    独立风控系统产品2 V2.0 V2.1 行情接口 aaaaaaaaa
    独立风控系统产品2 V2.0 V2.1 结算接口 1.02234
    独立风控系统产品2 V2.0 V2.1 交易接口 1.0
    交易结算综合类系统产品1
    其他产品1
    独立风控系统产品1 V2.0 V2.2 开户接口 1.2
    独立风控系统产品1 V2.0 V2.1 开户接口 1.2678
    独立风控系统产品2 V3.0 V3.2 开户接口 1.2
    独立交易系统产品1
    独立风控系统产品2 V2.0 V2.1 PSIS接口 1.02
    独立风控系统产品2 V2.0 V2.1 开户接口 1.2
    独立风控系统产品2 V1.0