Запрос SQL Server Sum - PullRequest
       8

Запрос SQL Server Sum

0 голосов
/ 19 ноября 2011

Сегодня моя проблема в том, что у меня есть 2 столбца, и я хочу проверить, не превышает ли сумма этих столбцов значение (например, 485), и если это сделать запрос ...

Я хотя бы сделать

SELECT * FROM table WHERE ColumnA + ColumnB < 485

Но это не работает ... Я уже пробовал с

SELECT Sum(ColumnA) + Sum(ColumnB) AS Total FROM table

, но это дает мне 1 столбец с суммой всех строк,Я вместо этого хочу ряд для каждой суммы.Так как я могу сделать ..?xD Я надеюсь, что вы поняли, если не просто спросить, что я пытаюсь объяснить это лучше!и спасибо заранее за тех, кто мне поможет!

РЕДАКТИРОВАТЬ: Я обнаружил, что XD проблема заключалась в том, что столбцы были Smallint и результат в 1 или более строк был больше, чем 32 КБ, поэтому он не работал!Спасибо всем !!

Ответы [ 2 ]

0 голосов
/ 19 ноября 2011

Если у вас есть нулевые значения в любом из двух столбцов, вы должны использовать case when:

SELECT * FROM table_name WHERE (CASE WHEN ColumnA IS NULL 0 ELSE ColumnA END) + (CASE WHEN ColumnB IS NULL 0 ELSE ColumnB END) < 485;

Возможно, у вас есть некоторые нулевые значения или все ваши данные имеют большее значение суммы, чем 485 для этих столбцов, как сказал Дэвид Парвин.

0 голосов
/ 19 ноября 2011

Правильный запрос для его достижения:

SELECT * FROM table WHERE ColumnA+ColumnB<485

Таким образом, Select вернет все строки, где ColumnA + ColumnB меньше 485

Если в противном случае вы хотите вернуть сумму двух столбцов, которую вы можете использовать

SELECT SUM(ColumnA)+SUM(ColumnB) FROM Table

Таким образом, запрос делает сумму столбца А во всех строках, сумму столбца В во всех строках, а затем суммирует две суммы ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...