我在MySQL中遇到了SUM()问题

问题描述:

我想获取由特定出席者出席的特定客户的BalanceAmt。标准是客户可以购买多件物品。每个购买的物品都已单独记录。在某些情况下'出席者'值将为NULL。我在MySQL中遇到了SUM()问题

这里是我的查询:

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

我的问题是我得到总结不是值由“attender”(即包括NULL值)出席了会议。 帮我做吧..

感谢名单提前..

我的感觉还没有得到这个问题的权利,但我会写这样

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

我认为你需要包括where条款来排除空值...类似下面应该做的伎俩:

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

HTH。

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;