我有两个具有相似结构的下表,其中 id1 和 id2 是唯一的:
Table1
id1 id2 amt1 amt2 id3
1A 1 12 14 12A
2A 4 23 35 34V
3A 8 45 23 13D
.................................
Table2
id1 id2 amt1 amt2 id3
1A 1 12 27 12A
2A 4 67 35 34D
3A 8 45 23 13D
.................................
所以 id1 和 id2 在这里是独一无二的,所以我想创建一个查询,告诉我哪个 id 与哪个 amt 不匹配,所以我制作了这样的简单脚本:
select T.id1,T.id2,
T.amt1, P.amt1,
T.amt2, P.amt2,
T.id3, P.id3
from
Table1 T,
Table2 P
where
T.id1=P.id1
T.id2=P.id2
(
nvl(T.amt1 ,0)-nvl(P.amt1 ,0)<>0 OR --used nvl to check if one table has null for other tables's number
nvl(T.amt2 ,0)-nvl(P.amt2 ,0)<>0 OR
T.id3 <>P.id3
);
这给了我差异,但是我很难在大表上进行分析,并且假设我有很多列和数量以及很多差异,我希望以如下所示的格式查看输出:假设我正在寻找差异Table1
id1 id2 difference in column
1A 1 amt2
2A 4 amt1,id3
任何人都可以显示什么查询可以生成如上所示的输出。