编写一个SELECT语句,为包含这些列的Invoices表中的每个供应商返回一行: Vendors表中的vendor_id列 该供应商的发票表中的invoice_total列的总和
SELECT
distinct vendor_id, SUM(invoice_total) AS Invoice_totals
FROM
invoices i
join vendors v using (vendor_id);
我能够显示没有SUM(invoice_total)的所有34个vendor_ids,但是一旦我添加它,它就将它们全部合并为一个。我怎样才能避免这种情况发生?
答案 0 :(得分:6)
请勿将select distinct
与sum()
一起使用。使用group by
。这使得查询的意图更加清晰。
其次,您需要left join
:
SELECT vendor_id, SUM(i.invoice_total) AS Invoice_totals
FROM vendors v LEFT JOIN
invoices i
using (vendor_id)
GROUP BY vendor_id;