Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как использовать SUM в такой ситуации?  [new]
sc2r2bey
Member

Откуда:
Сообщений: 177
Есть запрос, который выбирает порядка 15 строк, а в одной используется функция SUM
Если не использовать GROUP BY то выбрасывает ошибку и требует в все остальные поля в GROUP BY, и тогда результирующая выборка некорректная есть дублирующие записи, как сделать чтобы использовалась SUM, но без использования GROUP BY для всех полей или только некоторые можно было исключить?
11 мар 19, 15:31    [21829302]     Ответить | Цитировать Сообщить модератору
 Re: Как использовать SUM в такой ситуации?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 27889
sc2r2bey
как сделать чтобы использовалась SUM, но без использования GROUP BY для всех полей или только некоторые можно было исключить?
Непонятно тогда, что будет суммировать SUM?
Вы би привели пример данных.
11 мар 19, 15:35    [21829305]     Ответить | Цитировать Сообщить модератору
 Re: Как использовать SUM в такой ситуации?  [new]
sc2r2bey
Member

Откуда:
Сообщений: 177
первую колонку надо просуммировать

К сообщению приложен файл. Размер - 4Kb
11 мар 19, 15:41    [21829318]     Ответить | Цитировать Сообщить модератору
 Re: Как использовать SUM в такой ситуации?  [new]
invm
Member

Откуда: Москва
Сообщений: 8438
sum(первая колонка) over ()
11 мар 19, 15:46    [21829331]     Ответить | Цитировать Сообщить модератору
 Re: Как использовать SUM в такой ситуации?  [new]
sc2r2bey
Member

Откуда:
Сообщений: 177
invm
sum(первая колонка) over ()

я так пробовал он тогда заполняет первую колонку одним значением

К сообщению приложен файл. Размер - 5Kb
11 мар 19, 15:51    [21829338]     Ответить | Цитировать Сообщить модератору
 Re: Как использовать SUM в такой ситуации?  [new]
felix_ff
Member

Откуда: Moscow
Сообщений: 973
sc2r2bey,

ну а вам что в таком случае нужно?
11 мар 19, 15:55    [21829343]     Ответить | Цитировать Сообщить модератору
 Re: Как использовать SUM в такой ситуации?  [new]
sc2r2bey
Member

Откуда:
Сообщений: 177
на первом скрине первая колонка нужна ее сумма, но видите там колонка дублируется СТ000000885 т.е. одна строка с СТ000000885 и суммой всех первых колонок
11 мар 19, 16:00    [21829348]     Ответить | Цитировать Сообщить модератору
 Re: Как использовать SUM в такой ситуации?  [new]
felix_ff
Member

Откуда: Moscow
Сообщений: 973
sc2r2bey,

ну у вас есть какой то признак этой строки что она должна сумироваться?
 select
         case
             when [признак] = 0 then [первая колонка]
             when [признак] = 1 them sum([первая колонка] over ())
          end
         --остальные колонки
 from [table]
11 мар 19, 16:13    [21829371]     Ответить | Цитировать Сообщить модератору
 Re: Как использовать SUM в такой ситуации?  [new]
iap
Member

Откуда: Москва
Сообщений: 46633
sc2r2bey
и суммой всех первых колонок
Как определить, какие колонки первые, а какие нет?
И обнародуйте версию сервера. Это может быть важно.
11 мар 19, 16:18    [21829381]     Ответить | Цитировать Сообщить модератору
 Re: Как использовать SUM в такой ситуации?  [new]
sc2r2bey
Member

Откуда:
Сообщений: 177
нет такого признака, я думал подзапросом сделать, но там свои сложности, как на втором скрине получается
11 мар 19, 16:18    [21829384]     Ответить | Цитировать Сообщить модератору
 Re: Как использовать SUM в такой ситуации?  [new]
iap
Member

Откуда: Москва
Сообщений: 46633
sc2r2bey
нет такого признака, я думал подзапросом сделать, но там свои сложности, как на втором скрине получается
Добавьте поле, определяющее порядок записей. Тогда можно будет решить вашу задачу.
11 мар 19, 16:23    [21829391]     Ответить | Цитировать Сообщить модератору
 Re: Как использовать SUM в такой ситуации?  [new]
Щукина Анна
Member

Откуда:
Сообщений: 1244
sc2r2bey
invm
sum(первая колонка) over ()

я так пробовал он тогда заполняет первую колонку одним значением
попробуйте к этому ещё и partition by <тут ваше поле, в котором содержатся СТ000000885 >
11 мар 19, 18:44    [21829636]     Ответить | Цитировать Сообщить модератору
 Re: Как использовать SUM в такой ситуации?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 27889
sc2r2bey
на первом скрине первая колонка нужна ее сумма, но видите там колонка дублируется СТ000000885 т.е. одна строка с СТ000000885 и суммой всех первых колонок
И чего не получается с GROUP BY, я не понимаю? Добавьте остальные поля в GROUP BY, и будет всё правильно.
11 мар 19, 22:21    [21829807]     Ответить | Цитировать Сообщить модератору
 Re: Как использовать SUM в такой ситуации?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 27889
Щукина Анна
sc2r2bey
я так пробовал он тогда заполняет первую колонку одним значением
попробуйте к этому ещё и partition by <тут ваше поле, в котором содержатся СТ000000885 >
Да ему просто нужно просуммировать, не надо там никаких OVER и прочего.
11 мар 19, 22:22    [21829810]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить