MySQL多表联合统计查询问题

2025-02-26 07:28:30
推荐回答(1个)
回答1:

创建表,数据

create table a
(id int,
项目号 varchar(2),
总金额 int,
上家单位 varchar(4));

insert into a values (1,'01',100,'AAAA');
insert into a values (2,'02',200,'BBBB');
insert into a values (3,'03',250,'CCCC');

create table b
(id int,
项目号 varchar(2),
到款 int,
到款时间 date);

insert into b values (1,'03',50,'2018-07-23');
insert into b values (2,'03',100,'2018-07-24');
insert into b values (3,'01',80,'2018-07-25');

执行:

SELECT
a.项目号,
a.总金额,
sum(
CASE
WHEN a.项目号 = b.项目号 THEN
到款
ELSE
0
END
) 到款总额
FROM
a
LEFT JOIN b ON a.项目号 = b.项目号
GROUP BY
a.项目号,
a.总金额

结果: