2015-10-17 15 views
0
SELECT 
    customers.customerNumber, customers.customerName, 
    customers.state, customers.city, 
    COUNT(orders.customerNumber) AS OrdSum 
FROM 
    customers 
INNER JOIN 
    orders ON customers.customerNumber = orders.customerNumber 
WHERE 
    (customers.state <> 'NY') AND (customers.country = 'USA') 
GROUP BY 
    customers.customerName 
ORDER BY customers.customerNumber; 

這是我的sql代碼。 COUNT表不顯示該行的值爲0。SQL計數不適用於空

+1

您可以使用'COUNT(*)'或'COUNT(1)'。 – lad2025

+0

使用'left join' –

+0

仍然無法使用bro –

回答

0

這是做你想做的嗎?

SELECT c.customerNumber, c.customerName, c.state, c.city, 
     COUNT(o.customerNumber) AS OrdSum 
FROM customers c LEFT JOIN 
    orders o 
    ON c.customerNumber = o.customerNumber 
WHERE c.state <> 'NY' AND c.country = 'USA' 
GROUP BY c.customerNumber, c.customerName, c.state, c.city 
ORDER BY c.customerNumber; 

這應該顯示所有客戶在紐約與他們的訂單數量一起,即使他們有沒有訂單。我很好奇:如果有人沒有訂單,怎麼會有人在名爲customers的表格中?

相關問題