我有四个临时表,分别是单个人的'加款总额表'#A,'减款总额表'#B,'消费总额表'#C,'卡中余额表'#D,我现在想对每个人对下帐平不平,于是我把它们拿入一个表#T2,这时就出现问题了。因为我的条件是人员编号作为每个表的连接,比如说'减款总额表'中就只有几条记录,因为有的人员没有减款这项,所以人员编号到'减款总额表'时就有不等的情况了,这样查出的记录就只有它们公共的部分了,并没有满足我的要求.我想对在减款总额表中没有记录的人员,就默认他的减款值是0,怎么办啊?
这个问题我都想了一晚上了,再加今天早上,时间有点紧,请高手们帮帮忙啊???如下是我的语句:
select #D.人员编号,#A.加款总额,#B.减款总额,#C.消费总额,#D.卡中余额  into #T2
from #D inner join #A on #D.人员编号 = #A.人员编号  inner join #B on #D.人员编号 = #A.人员编号 and #D.人员编号 = #B.人员编号 inner join #C on #D.人员编号 = #A.人员编号 and #D.人员编号 = #B.人员编号 and #D.人员编号=#C.人员编号select * from #T2 where 加款总额<>减款总额+消费总额+卡中余额

解决方案 »

  1.   

    select * from #T2 where isnull(加款总额,0)<>isnull(减款总额,0)+isnull(消费总额,0)+isnull(卡中余额,0)这样试试
      

  2.   

    我已经试过了,这样不行的啊!因为《select * from #T2 where 加款总额<>减款总额+消费总额+卡中余额》这只是查询语句,在执行插入语句《select #D.人员编号,#A.加款总额,#B.减款总额,#C.消费总额,#D.卡中余额  into #T2 from #D inner join #A on #D.人员编号 = #A.人员编号  inner join #B on #D.人员编号 = #A.人员编号 and #D.人员编号 = #B.人员编号 inner join #C on #D.人员编号 = #A.人员编号 and #D.人员编号 = #B.人员编号 and #D.人员编号=#C.人员编号》时,就已经定了的。还请再帮忙想想,在下万分感谢!
      

  3.   


    用左聯接(另外,你的條件寫多了)select #D.人员编号,#A.加款总额,IsNull(#B.减款总额,0) As 减款总额 ,#C.消费总额,#D.卡中余额  into #T2
    from #D inner join #A on #D.人员编号 = #A.人员编号 inner join #C on  #D.人员编号=#C.人员编号
    Left join #B on #D.人员编号 = #B.人员编号select * from #T2 where 加款总额<>减款总额+消费总额+卡中余额