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

解决方案 »

  1.   

    --建立测试环境
    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
    */
      

  2.   


    --建表
    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
    */