0

我有两个具有相同列的 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  

我想创建一个选择查询,允许有一个基于列 card_type 和 date_creation 计算总数的表

查询结果应该是: 表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  
4

1 回答 1

3

UNION ALL您需要将and then放在一起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
于 2018-12-04T15:35:15.157 回答