不好意思,上面发错了table1
id                部门       年      月       数量
0000010000 beij 2006 4 20
0000010000 beij 2006 6 90
0000020000 beij 2006 4 20
0000020000 beij 2006 6 20
0000020000 BJ 2006 4 800
0000020000 BJ 2006 5 10table2
id                部门       年      月       数量
0000010000 beij 2006 6 14
0000020000 beij 2006 6 11
0000020000 BJ 2006 4 410要得到这样的结果:
id                部门       年      月       数量
0000010000 beij 2006 4 20
0000010000 beij 2006 6 76
0000020000 beij 2006 4 20
0000020000 beij 2006 6 9
0000020000 BJ 2006 4 390
0000020000 BJ 2006 5 10就是table1-table2中相同的记录的数量

解决方案 »

  1.   

    select a.id, a.部门, a.年, a.月, a.数量 - isnull(b.数量, 0) as 数量
    from table1 a left join table2 b on a.id = b.id and a.部门 = b.部门 and a.年 = b.年 and a.月 = b.月???
      

  2.   

    SELECt ID,部门,年,月,SUM(数量) FROM (SELECT id,部门,年,月,数量 FROM table1
    UNION
    SELECT id,部门,年,月,-数量 FROM table2) x
    GROUP BY ID,部门,年,月还有种常规写法,就是二表写连接,我想肯定有人在写了,就不写出来了.