У меня проблема с SUM () в MySQL - PullRequest
0 голосов
/ 26 июля 2010

Я хочу получить BalanceAmt конкретного Клиента, который посещает конкретный участник.Критерием является то, что клиент может купить более одного товара.Каждый купленный товар был записан индивидуально.В некоторых случаях значение аттестатора будет равно NULL.

Вот мой запрос:

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

Моя проблема в том, что я получаю суммируемое значение без участия ' участника ' (т.е. включая значение NULL).Помоги мне сделать это ..

Спасибо заранее ..

Ответы [ 3 ]

1 голос
/ 26 июля 2010

У меня такое чувство, что я не понял вопрос правильно, но я бы написал следующее предложение SELECT

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

Я не уверен, что такое AssignedTo.Если вы хотите сумму на клиента, AssignedTo, то это будет:

SELECT Customer, AssignedTo, SUM(BalanceAmt) 
FROM billing 
WHERE AttendedBy='attender' AND Customer='CustomerName' 
GROUP BY Customer, AssignedTo 
0 голосов
/ 08 октября 2012
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;
0 голосов
/ 26 июля 2010

Я думаю, вам нужно включить предложение where, чтобы исключить ваши нулевые значения ... Что-то вроде следующего должно помочь:

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

HTH.

...