Sql 如何对具有相同列的两个表进行列值合计
我有两个具有相同列的oracle表,我想对这两个表创建一个查询,按列进行合计: 表1: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
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