2013-11-27 129 views
0

我也想要顯示,如果產品沒有狀態「已交付」,它將顯示其計數爲0 ..我該怎麼做?如果使用的是WHERE條款,那麼你將只能得到那些記錄進行LatestStat = 'Delivered'如何在sql語句中選擇不包含在where子句中的行?

SELECT Product, SUM(IF(LatestStat='Delivered', 1, 0)) AS Delivered 
FROM warehouse 
GROUP BY Product 

SELECT Product, COUNT(*) AS Delivered 
    FROM warehouse 
    WHERE LatestStat = 'Delivered' 
GROUP BY Product 

回答

0
SELECT Product, COUNT(*) AS Delivered 
FROM warehouse 
WHERE LatestStat = 'Delivered' 
GROUP BY Product 
Having COUNT(*) > 0 
1

試試這個。所以我在這裏刪除了WHERE子句來使用所有記錄,然後我計算已經傳遞的記錄數。

+0

它返回總數爲每個產品... 我希望它退回產品和交付該產品的個性化......而如果計數0 ...它將返回0 –

+0

@bolekevora請在您的問題和預期結果中添加一些示例數據,以便我可以相應地更新我的查詢並幫助您更好。 –

+0

產品庫存交付 - 鍵盤2 0 - 鼠標1 3 這就是我想要的結果... –

0

你可以試試這個:

SELECT Product, COUNT(*) AS Delivered 
     FROM warehouse 
     WHERE LatestStat = 'Delivered' 
    GROUP BY Product 
    HAVING Delivered > 0