sql server2005两张表里的数据如何相减

表A数据如下: 表B数据如下:
cr zc lx cr zc lx
100 100 1 50 50 1
90 80 2 10 20 3
70 80 3
我想要以下的结果:
表C:
cr zc lx
50 50 1
90 80 2
60 60 3
即根据lx字段让表A的数据减去表B ,最终得到表C
请问这样的sql语句或者存储过程应该怎么写?如果方法好用马上给分~谢谢~

第1个回答  2011-07-07
create table c as
select a.cr-isnull(b.cr,0) cr,a.zc-isnull(b.zc,0) zc ,a.lx lx from a leftjoin b on a.lx=b.lx
我没有在数据库上测试,所以可能不能直接用,看着修改下就好,大体应该没问题
第2个回答  2011-07-07
CREATE TABLE #A (
cr INT,
zc INT,
lx INT
)
go

INSERT INTO #A
SELECT 100, 100, 1 union all
SELECT 90 , 80, 2 union all
SELECT 70 , 80, 3
GO

CREATE TABLE #B (
cr INT,
zc INT,
lx INT
)
go

INSERT INTO #B
SELECT 50, 50, 1 UNION ALL
SELECT 10, 20, 3

go

SELECT
ISNULL(a.cr, 0) - ISNULL(b.cr, 0) AS cr,
ISNULL(a.zc, 0) - ISNULL(b.zc, 0) AS zc,
ISNULL(a.lx, b.lx) AS lx
FROM
#A a FULL JOIN #B b ON (a.lx = b.lx)
go

cr zc lx
----------- ----------- -----------
50 50 1
90 80 2
60 60 3

(3 行受影响)本回答被提问者采纳
相似回答