表一
id balance
01 30
02 30表二
id yy mm salary
01 2007 06 10
01 2007 07 10
01 2007 08 10
02 2007 06 10
02 2007 07 10
02 2007 08 10表一与表二通过ID关联后
id balance yy mm salary
01 30 2007 06 10
01 30 2007 07 10
01 30 2007 08 10
02 30 2007 06 10
02 30 2007 07 10
02 30 2007 08 10
我要得到balance之和:
就是30+30=60?
似乎sum(distinct balance)不行
id balance
01 30
02 30表二
id yy mm salary
01 2007 06 10
01 2007 07 10
01 2007 08 10
02 2007 06 10
02 2007 07 10
02 2007 08 10表一与表二通过ID关联后
id balance yy mm salary
01 30 2007 06 10
01 30 2007 07 10
01 30 2007 08 10
02 30 2007 06 10
02 30 2007 07 10
02 30 2007 08 10
我要得到balance之和:
就是30+30=60?
似乎sum(distinct balance)不行
30+30=60
用exists关联
select sum(balance) from 表一 as a
where exists(select * from 表二 where id=a.id and 其它要过滤的条件)
不知道是不是这个意思
select a.id,a.balance,b.yy,b.mm,b.salary ,(select sum(balance) from a)as balance之和
from 表1 as a inner join 表2 as b
on a.id=b.id
30+30=60
_____________________按你那种说法那就应该是30+30+30=90
(select sum(balance) from (select distinct t1.id ,balance from 表1 as t1) as distinct_t1) as balance之和
from 表1 as t1,表2 as t2