Sql 如何对具有相同列的两个表进行列值合计

Sql 如何对具有相同列的两个表进行列值合计,sql,oracle,plsql,Sql,Oracle,Plsql,我有两个具有相同列的oracle表,我想对这两个表创建一个查询,按列进行合计: 表1: PRODUCTION_SYSTEM_ID CARD_TYPE TOTAL DATE_CREATION -------------------- ---------- ---------- ------------- 1 OPIC 1 28/09/18 1 IC

我有两个具有相同列的oracle表,我想对这两个表创建一个查询,按列进行合计: 表1:

PRODUCTION_SYSTEM_ID CARD_TYPE       TOTAL DATE_CREATION
-------------------- ---------- ---------- -------------
                   1 OPIC                1 28/09/18          
                   1 IC                  2 29/11/18      
                   1 IC                  1 27/09/18  
表2:

PRODUCTION_SYSTEM_ID CARD_TYPE       TOTAL DATE_CREATION
-------------------- ---------- ---------- -------------
                   1 OPIC                1 28/09/18          
                   1 IC                  2 29/11/18      
                   1 IC                  2 27/09/18  
我想创建一个select查询,该查询允许有一个根据列card_类型和日期_创建计算的总计表

查询结果应为: 表3:

PRODUCTION_SYSTEM_ID CARD_TYPE       TOTAL DATE_CREATION
-------------------- ---------- ---------- -------------
                   1 OPIC                2 28/09/18          
                   1 IC                  4 29/11/18      
                   1 IC                  3 27/09/18  

您需要将
UNION ALL
GROUP BY
组合在一起:

SELECT PRODUCTION_SYSTEM_ID 
        ,CARD_TYPE       
        ,SUM(TOTAL) TOTAL 
        ,DATE_CREATION
FROM
    (
        SELECT PRODUCTION_SYSTEM_ID 
                ,CARD_TYPE       
                ,TOTAL 
                ,DATE_CREATION
        FROM TABLE1
        UNION ALL
        SELECT PRODUCTION_SYSTEM_ID 
                ,CARD_TYPE       
                ,TOTAL 
                ,DATE_CREATION
        FROM TABLE2
    ) S 
GROUP BY 
         PRODUCTION_SYSTEM_ID 
        ,CARD_TYPE       
        ,DATE_CREATION

您需要将
UNION ALL
GROUP BY
组合在一起:

SELECT PRODUCTION_SYSTEM_ID 
        ,CARD_TYPE       
        ,SUM(TOTAL) TOTAL 
        ,DATE_CREATION
FROM
    (
        SELECT PRODUCTION_SYSTEM_ID 
                ,CARD_TYPE       
                ,TOTAL 
                ,DATE_CREATION
        FROM TABLE1
        UNION ALL
        SELECT PRODUCTION_SYSTEM_ID 
                ,CARD_TYPE       
                ,TOTAL 
                ,DATE_CREATION
        FROM TABLE2
    ) S 
GROUP BY 
         PRODUCTION_SYSTEM_ID 
        ,CARD_TYPE       
        ,DATE_CREATION