Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
合并两个表中的SQL语句,并从两个表中的字段创建求和,按新字段分组_Sql_Oracle10g - Fatal编程技术网

合并两个表中的SQL语句,并从两个表中的字段创建求和,按新字段分组

合并两个表中的SQL语句,并从两个表中的字段创建求和,按新字段分组,sql,oracle10g,Sql,Oracle10g,a有两个表:CDR和CR。我需要从CR中获得标称和,从CDR中获得操作系统和 b在表CDR中,我需要创建category字段,然后用于groupby:PDT、TAG、ARR、BUCKET c 表CDR: ID NOMINAL 1 800 2 700 3 900 3 1000 4 760 5 666 表CR: ID POOL_CD EXPOSURE_ATT OS METHOD BS

a有两个表:CDR和CR。我需要从CR中获得标称和,从CDR中获得操作系统和

b在表CDR中,我需要创建category字段,然后用于groupby:PDT、TAG、ARR、BUCKET

c

表CDR:

ID     NOMINAL
1      800
2      700
3      900
3      1000
4      760
5      666
表CR:

ID    POOL_CD     EXPOSURE_ATT     OS      METHOD     BS     ASSET
1     XT11        04               800     ADV        KKK    ZZZ
2     XO21        05               700     K          ABC    NNN
3     XT11        04               300     ADV        GGG    ZZZ
4     X022        04               200     ADV        HHH    ZZZ
5     XT14        05               100     ADV        GGG    ZZZ
最终表格:

PDT      EXPOSURE_ATT      TAG      ARR       BUCKET       OS     NOMINAL
T        04                ALM      1         LE60         1100   2700   (ID 1 AND 3)
T        05                CONV     1         MT90         100    666    (ID 5)
O        04                ALM      2         LE60         200    760    (ID 4)   
嗨, 最后,我尝试了上面的方法

SELECT x.PDT,x.exposure_att,x.TAG,x.ARR,x.BUCKET,SUM(x.OS) OS,SUM(x.NOMINAL) NOMINAL  
FROM  
(  
    SELECT *   
    FROM  
    (SELECT a.ID,a.exposure_att,a.OS,a.METHOD,a.BS,a.ASSET,  
        CASE  
        WHEN SUBSTR(a.POOL_CD,7,1)='O' THEN 'OVERDRAFT'  
        WHEN SUBSTR(a.POOL_CD,7,1)='T' THEN 'TERM_LOAN'  
        WHEN (a.exposure_att) in ('04','H3','H4') THEN 'PRIORITY_SEC'  
        ELSE 'MASS_HL' END PDT,  
        CASE  
            WHEN SUBSTR(a.POOL_CD,8,1)='0' THEN '0'  
        WHEN SUBSTR(a.POOL_CD,8,1)='1' THEN '1'  
        WHEN SUBSTR(a.POOL_CD,8,1)='2' THEN '2'  
        WHEN a.POOL_CODE='POOL_MY_HL' THEN 'POOL' END ARR,  
        CASE  
            WHEN SUBSTR(a.POOL_CD,20,1) in ('1','2') THEN 'LE60'  
        WHEN SUBSTR(a.POOL_CD,20,1)='3' THEN 'LE70'  
        ELSE 'MT90' END BUCKET,  
        CASE  
        WHEN (a.exposure_att) in ('01','02','04','09','AB') THEN 'ALM'  
        ELSE 'CONV' END TAG  
    FROM CDR a) a  
    LEFT JOIN  
        (SELECT b.ID,b.NOMINAL  
        FROM CR b) b  
    ON a.ID=b.ID  
    WHERE a.METHOD = 'ADV' 
    AND a.BS_TYPE not in ('ABC','DEF')
    AND a.ASSET = 'ZZZ'
) x   
GROUP BY x.PDT,x.exposure_att,x.TAG, x.ARR, x.BUCKET  
ORDER BY x.PDT,x.exposure_att,x.TAG, x.ARR, x.BUCKET  

你的问题是什么?嗨,安多玛和阿德里安,我想从CDR和CR两个表中做最后一个表。执行附加的代码会产生错误
SELECT x.PDT,x.exposure_att,x.TAG,x.ARR,x.BUCKET,SUM(x.OS) OS,SUM(x.NOMINAL) NOMINAL  
FROM  
(  
    SELECT *   
    FROM  
    (SELECT a.ID,a.exposure_att,a.OS,a.METHOD,a.BS,a.ASSET,  
        CASE  
        WHEN SUBSTR(a.POOL_CD,7,1)='O' THEN 'OVERDRAFT'  
        WHEN SUBSTR(a.POOL_CD,7,1)='T' THEN 'TERM_LOAN'  
        WHEN (a.exposure_att) in ('04','H3','H4') THEN 'PRIORITY_SEC'  
        ELSE 'MASS_HL' END PDT,  
        CASE  
            WHEN SUBSTR(a.POOL_CD,8,1)='0' THEN '0'  
        WHEN SUBSTR(a.POOL_CD,8,1)='1' THEN '1'  
        WHEN SUBSTR(a.POOL_CD,8,1)='2' THEN '2'  
        WHEN a.POOL_CODE='POOL_MY_HL' THEN 'POOL' END ARR,  
        CASE  
            WHEN SUBSTR(a.POOL_CD,20,1) in ('1','2') THEN 'LE60'  
        WHEN SUBSTR(a.POOL_CD,20,1)='3' THEN 'LE70'  
        ELSE 'MT90' END BUCKET,  
        CASE  
        WHEN (a.exposure_att) in ('01','02','04','09','AB') THEN 'ALM'  
        ELSE 'CONV' END TAG  
    FROM CDR a) a  
    LEFT JOIN  
        (SELECT b.ID,b.NOMINAL  
        FROM CR b) b  
    ON a.ID=b.ID  
    WHERE a.METHOD = 'ADV' 
    AND a.BS_TYPE not in ('ABC','DEF')
    AND a.ASSET = 'ZZZ'
) x   
GROUP BY x.PDT,x.exposure_att,x.TAG, x.ARR, x.BUCKET  
ORDER BY x.PDT,x.exposure_att,x.TAG, x.ARR, x.BUCKET