代码之家  ›  专栏  ›  技术社区  ›  e2rabi

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

  •  0
  • e2rabi  · 技术社区  · 5 年前

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

    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  
    
    1 回复  |  直到 5 年前
        1
  •  3
  •   Zeki Gumus    5 年前

    你需要把 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