2013-06-18 2 views
-2

Я пытаюсь суммировать столбец в моей таблице, проблема заключается в наличии нескольких сумм, которые необходимо выполнить.Несколько команд SUM

Так, например, может быть 40 записей с идентификатором 1 и значением точки 20, а затем оно изменится на нового человека с идентификатором 2 и значением точки 20. Если это имеет смысл.

Как я хочу, чтобы сделать запрос, но он не работает, как это:

SELECT SUM(Value) 
FROM Points WHERE RegNum IN('','','') 

И тогда я хотел бы, чтобы показать, как и обычная команда SUM будет, с общим суммируется но с линией для каждого идентификатора. Я просмотрел другие вопросы о командах SUM и просто не могу применить его к моей ситуации.

Благодарим за помощь.

+2

Это не решит проблему, но вы всегда должны GROUP BY когда используя агрегатные функции. – lracicot

+0

@ Iracicot В общем случае, используя агрегатные функции без указания предложения GROUP BY, в SQL все в порядке. Просто не в этом случае. – peterm

+0

@peterm В общем, это не то, что вы хотите. –

ответ

2

Похоже, вам необходимо использовать GROUP BY в вашем случае. Попробуйте

SELECT RegNum, SUM(Value) total 
    FROM Points 
WHERE RegNum IN(1, 2, 3) 
GROUP BY RegNum 

Пример вывода:

 
| REGNUM | TOTAL | 
------------------ 
|  1 | 17 | 
|  2 |  9 | 
|  3 |  1 | 

Вот SQLFiddle демо

0

Попробуйте

SELECT RegNum, SUM(Value) as TotalRegNum 
    From Points 
    WHERE RegNum IN('1','2','3') 
    GROUP BY RegNum 
Смежные вопросы