select d.id,d.zhichu,sum(isnull(c.shouru,0)) from
(select a.id,sum(isnull(b.zhichu,0)) as zhichu from a left join b on a.id=b.id group by a.id) d
left join c
on d.id=c.id group by d.id,d.zhichu
create table #a(id int null)
go
create table #b(id int null,zhichu int null)
go
create table #c(id int null,shouru int null)
go
insert into #a values(1)
insert into #a values(2)
insert into #a values(3)
insert into #a values(4)
go
insert into #b values(1,10)
insert into #b values(3,20)
insert into #b values(4,20)
insert into #b values(3,50)
go
insert into #c values(2,30)
insert into #c values(3,40)
insert into #c values(3,50)
insert into #c values(1,60)
go
select d.id,d.zhichu,e.shouru
from
( select #a.id as id,
sum(isnull(zhichu,0)) as zhichu
from
#a left join #b on #a.id=#b.id
group by #a.id) d,
(select #a.id as id,
sum(isnull(shouru,0)) as shouru
from
#a left join #c on #a.id=#c.id
group by #a.id) e
where d.id=e.id
)
insert A
select 1 union
select 2 union
select 3 union
select 4
create table b
(
id int ,
zhichu int
)
insert B
select 1,10 union
select 3,20 union
select 4,20 union
select 3,50
create table C
(
id int ,
shouru int
)
insert C
select 2,10 union
select 3,20 union
select 3,20 union
select 1,60
select AB.id,AB.zhichu,isnull(C.shouru,'') as shouru from
(select A.id ,isnull(B.zhichu, '') as zhichu from A
LEFT OUTER JOIN (select id,sum(zhichu) as zhichu from B group by id) B
on A.id=B.id) AB LEFT OUTER JOIN (select id,sum(shouru) as shouru from C group by id) C on
AB.id=C.id