2017-10-13 74 views
2

編寫返回一行在發票表中包含這些列的每個供應商提供的SELECT語句: 向賣方表 在該invoice_total列的總和VENDOR_ID列發票表該供應商不能在MySQL查詢分出不同的IDS

SELECT 
    distinct vendor_id, SUM(invoice_total) AS Invoice_totals 
FROM 
    invoices i 
    join vendors v using (vendor_id); 

我能夠顯示所有34個vendor_ids沒有SUM(invoice_total),但一旦我再補充一點,它所有這些合併成一個。我怎樣才能避免這種情況發生?

+0

您正在使用什麼RDBMS? –

+0

添加'Group By Vendor_ID'並移除'Distinct'。 –

+0

MySQL。並感謝你,這是問題:) –

回答

6

請勿使用select distinctsum()。使用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; 
+0

這是答案。謝謝。 –

+0

啊。先把'Vendors'放在'Invoices'上,然後做'LEFT JOIN'將顯示'Vendors'沒有'Invoices'。好點子。 –