db2 从两个结构相同的表中查找不匹配的列

3duebb1j  于 2022-11-07  发布在  DB2
关注(0)|答案(1)|浏览(194)

我有两个结构相同的表。我必须根据ID和年份组合在两个表中找到不匹配的列。下面是表结构:

标识和年份是两个表中的主键。

====================================================================创建表并为表1插入脚本:

create table table1 (id int, year int, name varchar(50), stat varchar(50), PRIMARY KEY (id,year));

insert into table1 values (1,2021,'Aman','L');
insert into table1 values (2,2021,'Ankit','H');
insert into table1 values (3,2021,'Rahul','G');
insert into table1 values (4,2021,'Gagan','L');

====================================================================创建表并为表2插入脚本:

create table table2 (id int, year int, name varchar(50), stat varchar(50), PRIMARY KEY (id,year));

insert into table2 values (1,2020,'Aman','H');
insert into table2 values (2,2020,'Anuj','M');
insert into table2 values (3,2020,'Rahul','G')
insert into table2 values (4,2020,'Abhi','L')

============================================================

预期输出:

例如,第一个表中的id = 1和year = 2021与表2中的id = 1和year = 2020(table 1 year -1)进行比较时,应返回不同的统计信息。
table 1中的id = 2和year = 2021与table 2中的id = 2和year = 2020进行比较时,应返回名称和统计信息不同。
我需要将表2中的year-1与表1中的year列进行比较。
有人能帮我用sql或DB2查询或过程吗,我怎么能做到呢。

khbbv19g

khbbv19g1#

听起来你需要一个简单的连接

select * 
from table1 t1
     join table2 t2 
       on t1.id = t2.id
          and t1.year = t2.year + 1
where t1.stat <> t2.stat
      or t1.name <> t2.name --if you want this?

相关问题