我有2张桌子:
表 tms_bills
id load_id 公司名称 1 11 公司1 2 11 公司1 3 11 公司2 4 12 公司3
表 tms_ payment
id 金额 payment_associate_id 11 100 2 12 200 2 13 200 3 14 50 6
我想要 tms_bills 中的行,其中 load_id=11 且 company_name = 'company1' 以及 tms_ payments 中 'amount' 列的总和,其中 id = payment_associate_id
SELECT tb.*, SUM(amount) AS paid_amount
FROM tms_payments tp
LEFT JOIN tms_bills tb
ON tb.id = tp.payment_associate_id
WHERE tb.load_id = 11
AND tb.company_name = 'company1'
ORDER BY tb.id DESC;
上面的代码获取了错误的结果。
输出应该是:
id load_id 公司名称 金额 1 11 公司1 0 2 11 公司1 300
有人可以帮我做这个吗?
尝试以下查询。
SELECT tb.*, SUM(IFNULL(amount,0)) AS paid_amount
FROM tms_bills tb
LEFT JOIN tms_payments tp ON tb.id = tp.payment_associate_id
WHERE tb.load_id = 11 AND tb.company_name = 'company1'
GROUP BY tb.id
ORDER BY tb.id ASC;