我是用Access试验的,首先将表II的数据按name汇总成表III,其中的内容为
name number
b 3
d 7然后通过下面的sql能得到你想要的结果:
SELECT I.name,I.number-iif(isnull(III.number),0,III.number) from I left join III on I.name=III.name不知有没有更好的办法:)
name number
b 3
d 7然后通过下面的sql能得到你想要的结果:
SELECT I.name,I.number-iif(isnull(III.number),0,III.number) from I left join III on I.name=III.name不知有没有更好的办法:)
以上的信息不全:本人用的是vb6。
感谢TopHead,gx_sunny,以及一切光顾/关照本问题的“仙人”。
这是个错误的语句,但就是这个意思;用循环去做吧
from I,(select name,sum(number) as number
from II
group by name
) as temp
where I.name=temp.name
select name, sum(number)
into #tmp
from I
group by nameunion all
select name, -sum(number)
from II
group by nameselect name, sum(number)
from III
group by namedelete Iinsert I
select *
from #tmp这种方法的速度要快于连接后,作update
select name, sum(number) number
from (
select name, number number
from table1
union all
select name, - sum(number) number
from table2
group by name
) order by 1
select distinct name,sum(number) number from table2;
create view result as
select name,a1.number-a2.number
from table1 a1,view2 a2
where a1.name(+)=a2.namethis is for oracle
i want it have som help for u
!
还是采用TANGHUAN的办法吧
WHERE I.Name = II.Name);