【问题标题】:How to group two table with the same columns doing total of a column value如何对具有相同列的两个表进行分组,总计列值
【发布时间】:2018-12-04 23:38:20
【问题描述】:

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

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  

【问题讨论】:

    标签: sql oracle plsql


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2013-02-05
      • 1970-01-01
      • 1970-01-01
      • 2020-04-24
      • 1970-01-01
      • 2023-04-02
      • 2021-02-12
      • 2022-12-05
      • 1970-01-01
      相关资源
      最近更新 更多