Flower@12 Ответов: 2

Мне нужно суммировать поля таблицы SQL, используя условие where


Мой табличное значение
Group    Amount
A Group I  1500
A Group II 2000
B Group I  2500
B Group II 500


Ожидаемый Результат

Group     Amount
A Group I    3500
B Group I    3000


Как это сделать?

Что я уже пробовал:

Я использую

Select Group,Sum(Amount)
From tblAmount
Group by Group

2 Ответов

Рейтинг:
9

Maciej Los

То, чего вы пытаетесь достичь, называется "группировка по части строки"

SELECT   [Group], SUM([Amount]) AS SumAmount 
FROM     [dbo].[tblAmount] 
GROUP BY LEFT([Group], CHARINDEX('Group', [Group]+5)


Обратите внимание, что ниже приведено утверждение:
LEFT([Group], CHARINDEX('Group', [Group]+5)

поиск строки "Group"в [Group] столбец и возврат: {"A Group", "B Group"}


Flower@12

Он прекрасно работает.Благодарю вас сэр

Maciej Los

Всегда пожалуйста.

Рейтинг:
0

#realJSOP

Поскольку вы агрегируете (суммируете) сумму, вы не должны включать ее в отчет. GROUP BY пункт.

SELECT   [Group], 
         SUM([Amount]) AS SumAmount 
FROM     [dbo].[tblAmount] 
WHERE [Group] LIKE '%Group I'
GROUP BY [Group]


Кстати, такого нет WHERE участвующий класс основан на вашем ожидаемом выходе


Flower@12

я пробовал его сэр но он не работает

#realJSOP

"Не работает" ни черта мне не говорит.

#realJSOP

Я изменил свой ответ. попробуй сейчас.

#realJSOP

И для записи, вы никогда не должны называть свои таблицы, представления, столбцы и другие вещи, используя зарезервированные слова SQL. "Группа" - не очень хорошее название.

Flower@12

хорошо спасибо

Flower@12

я показываю только примерное имя поля, как и имя файла моей таблицы