This is an example what i need :
Table 1 :
x
Id champ1 champ2 champ3
1 A S Q
2 D K A
3 D A S
Table 2:
Id champ1 champ2 champ3
1 A S Q
2 Q A A
3 A A K
A procedure that feeds a table3 as a result of comparison between the table 1 and table 2
Table 3:
Id_exc name_champ noted_val except_val
2 champ1 D Q
3 champ1 D A
2 champ2 K A
3 champ3 S K
Please, i need help if someone had the same challenge 🙂
Advertisement
Answer
Data setup:
CREATE TABLE Table1
(Id int, champ1 varchar2(1), champ2 varchar2(1), champ3 varchar2(1))
;
INSERT ALL
INTO Table1 (Id, champ1, champ2, champ3)
VALUES (1, 'A', 'S', 'Q')
INTO Table1 (Id, champ1, champ2, champ3)
VALUES (2, 'D', 'K', 'A')
INTO Table1 (Id, champ1, champ2, champ3)
VALUES (3, 'D', 'A', 'S')
SELECT * FROM dual
;
CREATE TABLE Table2
(Id int, champ1 varchar2(1), champ2 varchar2(1), champ3 varchar2(1))
;
INSERT ALL
INTO Table2 (Id, champ1, champ2, champ3)
VALUES (1, 'A', 'S', 'Q')
INTO Table2 (Id, champ1, champ2, champ3)
VALUES (2, 'Q', 'A', 'A')
INTO Table2 (Id, champ1, champ2, champ3)
VALUES (3, 'A', 'A', 'K')
SELECT * FROM dual
;
The below query would give you the differences
SELECT *
FROM ((SELECT *
FROM table1
minus
SELECT *
FROM table2)
UNION
(SELECT *
FROM table2
minus
SELECT *
FROM table1));
ID CHAMP1 CHAMP2 CHAMP3
2 D K A
2 Q A A
3 A A K
3 D A S