select
b.name,
b.pay1,
flag1 = (case when a.pay1 = b.pay1 then 0 else 1 end),
b.pay2,
flag2 = (case when a.pay2 = b.pay2 then 0 else 1 end),
from
三月工资表 a,
四月工资表 b
where
a.name = b.name
b.name,
b.pay1,
flag1 = (case when a.pay1 = b.pay1 then 0 else 1 end),
b.pay2,
flag2 = (case when a.pay2 = b.pay2 then 0 else 1 end),
from
三月工资表 a,
四月工资表 b
where
a.name = b.name
Create Table 表1(name varchar(10),pay1 varchar(10),pay2 varchar(10))
--插入数据
insert into 表1
select '张三','100','100' union
select '李四','200','200' union
select '王五','100','100'
Create Table 表2(name varchar(10),pay1 varchar(10),pay2 varchar(10))
--插入数据
insert into 表2
select '张三','100','100' union
select '李四','300','200' union
select '王五','100','200'
select a.name,a.pay1,falg1=case when a.pay1=b.pay1 then 0 else 1 end,
a.pay2,falg2=case when a.pay2=b.pay2 then 0 else 1 end
from 表1 a,表2 b
where a.name=b.name
--删除测试环境
Drop Table 表1
Drop Table 表2
/*
name pay1 falg1 pay2 falg2
---------- ---------- ----------- ---------- -----------
李四 200 1 200 0
王五 100 0 100 1
张三 100 0 100 0
*/
--建表
Create table 三月工资表
(name Nvarchar(20),
pay1 Int,
pay2 Int
)
Create table 四月工资表
(name Nvarchar(20),
pay1 Int,
pay2 Int
)
GO--插入数据Insert 三月工资表 Values(N'张三', 100, 100)
Insert 三月工资表 Values(N'李四', 200, 200)
Insert 三月工资表 Values(N'王五', 100, 100)Insert 四月工资表 Values(N'张三', 100, 100)
Insert 四月工资表 Values(N'李四', 300, 200)
Insert 四月工资表 Values(N'王五', 100, 200)GO
--测试
Select * from 三月工资表
Select * from 四月工资表
Select A.Name,
(Case When A.pay1=B.pay1 Then A.pay1 Else B.pay1 End) As pay1,
(Case When A.pay1=B.pay1 Then 0 Else 1 End) As Flag1,
(Case When A.pay2=B.pay2 Then A.pay2 Else B.pay2 End) As pay2,
(Case When A.pay2=B.pay2 Then 0 Else 1 End) As Flag2
from 三月工资表 A Inner Join 四月工资表 B
On A.Name=B.Name
--删除测试环境
Drop table 三月工资表
Drop table 四月工资表
--结果
/*
Name pay1 Flag1 pay2 Flag2
张三 100 0 100 0
李四 300 1 200 0
王五 100 0 200 1
*/