我有两个表,需要两个表的列总和,我尝试了但无法得到结果
我的内连接查询是:
SELECT loan_collection.coll_date,
sum(loan_collection.coloan_amo) AS coloan_amo,
sum(loan_collection.sc_coll) AS sc_coll,
sum(loan_collection.total_coll) AS total_coll,
loan_collection.year,
bag_del_rentcoll.rent_bagdel,
bag_del_rentcoll.rent_amo,
bag_del_rentcoll.booking,
bag_del_rentcoll.rent_rece
FROM loan_collection AS loan_collection
INNER JOIN
(SELECT del_date,
sum(rent_bagdel) AS rent_bagdel,
sum(rent_amo) AS rent_amo,
sum(booking) AS booking,
sum(rent_rece) AS rent_rece
FROM bag_del_rentcoll) AS bag_del_rentcoll
GROUP BY loan_collection.coll_date
结果是: 如您所见,它是表二中所有内容的总和。我怎样才能得到结果
谢谢。
最佳答案
先聚合,后加入。我想你想加入 del_date = coll_date
。这是完整的查询:
SELECT
lc.coll_date,
lc.sum_coloan_amo,
lc.sum_sc_coll,
lc.sum_total_coll,
lc.max_year,
bdr.sum_rent_bagdel,
bdr.sum_rent_amo,
bdr.sum_booking,
bdr.sum_rent_rece
FROM
(
SELECT
coll_date,
SUM(coloan_amo) AS sum_coloan_amo
SUM(sc_coll) AS sum_sc_coll,
SUM(total_coll) AS sum_total_coll,
MAX(year) AS max_year
FROM loan_collection
GROUP BY coll_date
) lc
INNER JOIN
(
SELECT
del_date,
sum(rent_bagdel) AS sum_rent_bagdel,
sum(rent_amo) AS sum_rent_amo,
sum(booking) AS sum_booking,
sum(rent_rece) AS sum_rent_rece
FROM bag_del_rentcoll
GROUP BY del_date
) bdr ON bdr.del_date = lc.coll_date;
关于MySQL连接两个表并从两个表中求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42110857/