Гость
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Запрос на суммирование занчений / 11 сообщений из 11, страница 1 из 1
11.09.2016, 12:35
    #39307175
Dozent
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос на суммирование занчений
Добрый день, прошу помощи разобраться с проблемой. Не могу понять почему не получается просуммировать данные.

Есть такой запрос:

Код: sql
1.
SELECT id, -1 as id_d, 'Отгруженные' as name, date_d, id_b, id_i,  count_items , article, shipped  FROM detailing WHERE shipped=1 AND id_i=75




ID ID_D NAME DATE_D ID_B ID_I COUNT_ITEMS ARTICLE SHIPPED
89545 -1 Отгруженные 75 24 1
92924 -1 Отгруженные 75 162 1


Получаю такой результат, мне нужно просуммировать количество.
Пишу

Код: sql
1.
    SELECT id, -1 as id_d, 'Отгруженные' as name, date_d, id_b, id_i,  SUM(count_items) , article, shipped  FROM detailing WHERE shipped=1 AND id_i=75



Просит сгруппировать, группирую по всем полям сумма не происходит. Я очень давно уже не работал с SQL. Помогите плз)
...
Рейтинг: 0 / 0
11.09.2016, 12:39
    #39307176
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос на суммирование занчений
DozentПросит сгруппировать, группирую по всем полям сумма не происходит.

группировать по id нет никакого смысла. Сначала разберись что тебе хочется. Если нужно суммирование без группировки тогда предложение OVER() после SUM тебе поможет.
...
Рейтинг: 0 / 0
11.09.2016, 13:35
    #39307181
Dozent
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос на суммирование занчений
Мне нужно вместо 2 строк получить одну и при этом получить сумму поля count_items из 2 записей
...
Рейтинг: 0 / 0
11.09.2016, 13:48
    #39307188
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос на суммирование занчений
Dozent,

если id это ПК то ты никак это не сделаешь. Убирай id из SELECT и группируй по всему кроме агрегата.
id_d, name, id_i и shipped я бы тоже выкинул
...
Рейтинг: 0 / 0
11.09.2016, 13:51
    #39307189
Dozent
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос на суммирование занчений
Ок, спасибо) Впринципе получилось что хотел)
...
Рейтинг: 0 / 0
11.09.2016, 13:58
    #39307190
Dozent
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос на суммирование занчений
Код: sql
1.
    SELECT id, -1 as id_d, 'Отгруженные' as name, date_d, id_b, id_i,  (SELECT  sum(count_items)   FROM detailing dtl1 WHERE shipped=1 AND dtl1.id_i=dtl.id_i) as count_items, article, shipped  FROM detailing dtl WHERE dtl.shipped=1



Как-то ускорить запрос можно? Очень долго работает
...
Рейтинг: 0 / 0
11.09.2016, 14:11
    #39307193
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос на суммирование занчений
Dozent,

ты вообще ответы читаешь? Для твоего примера (если id сохранять) используй SUM как оконную функцию.
...
Рейтинг: 0 / 0
11.09.2016, 14:42
    #39307199
Dozent
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос на суммирование занчений
Что за оконная функция? Я не понимаю
...
Рейтинг: 0 / 0
11.09.2016, 14:44
    #39307200
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос на суммирование занчений
Dozent,

Код: sql
1.
2.
3.
SELECT id, -1 as id_d, 'Отгруженные' as name, date_d, id_b, id_i,  SUM(count_items) OVER(), article, shipped  
FROM detailing 
WHERE shipped=1 AND id_i=75
...
Рейтинг: 0 / 0
12.09.2016, 08:04
    #39307356
Exteris
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос на суммирование занчений
DozentЧто за оконная функция? Я не понимаю
Это в FB 3.
...
Рейтинг: 0 / 0
12.09.2016, 09:31
    #39307380
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос на суммирование занчений
Exteris,

ну так Доцент не указал версию ФБ, поэтому я в праве давать ответы под любую
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Запрос на суммирование занчений / 11 сообщений из 11, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]