2010-07-26 97 views
0

我想獲取由特定出席者出席的特定客戶的BalanceAmt。標準是客戶可以購買多件物品。每個購買的物品都已單獨記錄。在某些情況下'出席者'值將爲NULL。我在MySQL中遇到了SUM()問題

這裏是我的查詢:

SELECT Customer, AttendedBy, SUM(BalanceAmt) FROM billing GROUP BY Customer 
    HAVING AttendedBy='attender' AND Customer='CustomerName' 

我的問題是我得到總結不是值由「attender」(即包括NULL值)出席了會議。 幫我做吧..

感謝名單提前..

回答

1

我的感覺還沒有得到這個問題的權利,但我會寫這樣

SELECT Customer, SUM(BalanceAmt) 
FROM billing 
WHERE AttendedBy='attender' AND Customer='CustomerName' 
GROUP BY Customer 

SELECT語句我不知道該AssignedTo是什麼。如果你想在客戶的總和,AssignedTo那麼這將是:

SELECT Customer, AssignedTo, SUM(BalanceAmt) 
FROM billing 
WHERE AttendedBy='attender' AND Customer='CustomerName' 
GROUP BY Customer, AssignedTo 
+0

很好地說...花了太多的時間與我的瀏覽器爭吵,但得出了與你相同的結論。 – 2010-07-26 15:06:35

+0

非常感謝。 – hol 2010-07-26 19:26:55

0

我認爲你需要包括where條款來排除空值...類似下面應該做的伎倆:

SELECT Customer, AssignedTo, SUM(BalanceAmt) FROM billing 
WHERE not(BalanceAmt is null) AND AttendedBy='attender' AND Customer='CustomerName' 
GROUP BY Customer, AssignedTo 

HTH。

0
SELECT Customer, SUM(BalanceAmt) 
FROM billing 
WHERE AttendedBy='attender' AND Customer='CustomerName' 
GROUP BY Customer 

在你上面的查詢group by因爲你已經把列where子句中不是必需的。

您可以從select中刪除它,並且您還刪除了group by

你可以寫這樣的東西,以獲得客戶明智的總和。

SELECT Customer, SUM(BalanceAmt) 
FROM billing 
WHERE AttendedBy='attender' 
GROUP BY Customer;