表A,(应付款表)
编号,公司名称,应付金额
1 公司A 1000.00
2 公司A 2000.00
3 公司A 3000.00
4 公司B 4000.00
5 公司B 5000.00
6 公司C 6000.00
表B,(已付款表)
编号,公司名称,应付金额
1 公司A 3000.00
2 公司A 3000.00
3 公司B 4000.00
4 公司B 4000.00我想得到这样的结果公司名称,应付金额,已付金额,应付合计
公司A 6000.00 6000.00 0.00
公司B 9000.00 8000.00 1000.00
公司C 6000.00 0.00 6000.00
编号,公司名称,应付金额
1 公司A 1000.00
2 公司A 2000.00
3 公司A 3000.00
4 公司B 4000.00
5 公司B 5000.00
6 公司C 6000.00
表B,(已付款表)
编号,公司名称,应付金额
1 公司A 3000.00
2 公司A 3000.00
3 公司B 4000.00
4 公司B 4000.00我想得到这样的结果公司名称,应付金额,已付金额,应付合计
公司A 6000.00 6000.00 0.00
公司B 9000.00 8000.00 1000.00
公司C 6000.00 0.00 6000.00
insert into a select 1,'公司A',1000.00
insert into a select 2,'公司A',2000.00
insert into a select 3,'公司A',3000.00
insert into a select 4,'公司B',4000.00
insert into a select 5,'公司B',5000.00
insert into a select 6,'公司C',6000.00create table b(编号 int,公司名称 varchar(50),应付金额 decimal(10,2))
insert into b select 1,'公司A',3000.00
insert into b select 2,'公司A',3000.00
insert into b select 3,'公司B',4000.00
insert into b select 4,'公司B',4000.00
select a.公司名称,a.应付金额,isnull(b.应付金额,0),a.应付金额-isnull(b.应付金额,0) from (
select 公司名称,sum(应付金额) as 应付金额 from a group by 公司名称)a left join
(
select 公司名称,sum(应付金额) as 应付金额 from b group by 公司名称
)b on a.公司名称=b.公司名称公司A 6000.00 6000.00 0.00
公司B 9000.00 8000.00 1000.00
公司C 6000.00 0.00 6000.00
select a.公司名称,
a.应付金额 as 应付金额,
isnull(b.应付金额,0) as 已付金额,
a.应付金额-isnull(b.应付金额,0) as 应付合计
from (select 公司名称,sum(应付金额) as 应付金额 from a group by 公司名称)a left join
(select 公司名称,sum(应付金额) as 应付金额 from b group by 公司名称)b
on a.公司名称=b.公司名称
公司名称 应付金额 已付金额 应付合计
公司A 6000.00 6000.00 0.00
公司B 9000.00 8000.00 1000.00
公司C 6000.00 0.00 6000.00