2011-11-05 129 views
0

表A:qa_invoicesMySQL的左连接复制

invoice_code invoice_date 
    1    25 
    2    25 
    3    26 
    4    27 

表B:qa_invoicesitems

invoice_code item_quantity item_name 
    1    2    Mouse 
    1    1    CPU 
    2    5    Keyboard 
    3    1    Router 
    4    3    Switch 

我的查询:

SELECT SUM(qa_invoicesitems.item_quantity) AS item_count, COUNT(*) AS invoice_count  
FROM qa_invoices 
LEFT OUTER JOIN qa_invoicesitems USING (invoice_code) 
WHERE qa_invoices.invoice_date = 25 

我的结果:

item_count invoice_count 
8   3   

我有几个小时寻找解决方案,问题是要统计发票(invoice_count)。

正确的结果将是:

item_count invoice_count 
8   2 

如果有人能帮助我与我的poblem。

回答

1

尝试向您的COUNT添加DISTINCT。

SELECT SUM(qa_invoicesitems.item_quantity) AS item_count, COUNT(DISTINCT(qa_invoicesitems.invoice_code)) AS invoice_count  
FROM qa_invoices 
LEFT OUTER JOIN qa_invoicesitems USING (invoice_code) 
WHERE qa_invoices.invoice_date = 25 
+0

哇,快速有效。非常感谢 –