Гость
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Помогите с запросом / 21 сообщений из 21, страница 1 из 1
10.01.2018, 09:32
    #39581484
noob2018
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
Добрый день!
Подскажите с запросом.
Исходная таблица:
nametypepricestuff125stuff223stuff314stuff427stuff518
Результат:
nametypepricesumType1sumType2stuff1251215stuff2231215stuff3141215stuff4271215stuff5181215
Нужны колонки с суммами по каждому типу.
...
Рейтинг: 0 / 0
10.01.2018, 09:41
    #39581494
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
Код: sql
1.
select type, sum(price) from table group by type


А дальше сам.
...
Рейтинг: 0 / 0
10.01.2018, 10:29
    #39581527
KreatorXXI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
noob2018,

Какой вопрос, такой и ответ. Что нужно? Шахматка? С неопределённым количеством "type"? Или вот. Stuff1 всегда с type=2? Исходную таблицу дайте побольше. Непонятно что суммировать.
...
Рейтинг: 0 / 0
10.01.2018, 10:31
    #39581530
Naf
Naf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
а зачем такой странный результат?
...
Рейтинг: 0 / 0
10.01.2018, 10:47
    #39581541
noob2018
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
Да, не совсем стандартно и странно, но нужен именно такой результат. Нужно чтобы итоговая сумма была в отдельном столбце.
К примеру:
namepriceтовар15товр24товар37товар46

Сумма колонки price в колонке sum
namepricesumтовар1522товр2422товар3722товар4622
...
Рейтинг: 0 / 0
10.01.2018, 10:49
    #39581542
noob2018
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
В первом примере нужно еще разбить по типам
...
Рейтинг: 0 / 0
10.01.2018, 10:52
    #39581550
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
noob2018,

немного не то, но может быть тебе подойдёт

Код: sql
1.
2.
3.
4.
5.
6.
7.
select
  name,
  type,
  price,
  sum(price) over(partition by type) as SumByType
from mytable
order by name
...
Рейтинг: 0 / 0
10.01.2018, 11:08
    #39581571
KreatorXXI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
Симонов Денис,

Да это тоже не пойдёт. Наверно. У конкретного товара прайс всегда один? Тайп один? Вопрос "зачем суммировать прайс" не задаю. Нужен DDL таблицы (таблиц).
...
Рейтинг: 0 / 0
10.01.2018, 11:13
    #39581575
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
KreatorXXI,

я вообще не понимаю зачем прайс суммировать. Это же не сумма продаж
...
Рейтинг: 0 / 0
10.01.2018, 11:32
    #39581594
noob2018
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
Да неважно что суммировать, пусть это будет сумма розничная. Вопрос в том, как сумму по какому-то столбцу отобразить в отдельном столбце
...
Рейтинг: 0 / 0
10.01.2018, 11:39
    #39581600
KreatorXXI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
noob2018,

Ну если неважно, то второй пост (wadman) годится.
...
Рейтинг: 0 / 0
10.01.2018, 13:48
    #39581710
Naf
Naf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
Код: sql
1.
2.
3.
4.
select T.type, X.price
from table as T
   left join (select sum(price) as price from table) as X
   on (1=1)
...
Рейтинг: 0 / 0
10.01.2018, 13:56
    #39581719
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
noob2018,

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
select
  name,
  type,
  price,
  sum(case when type=1 then price end) over() as SumType1,
  sum(case when type=2 then price end) over() as SumType2
from mytable
order by name
...
Рейтинг: 0 / 0
10.01.2018, 14:13
    #39581731
YuRock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
noob2018Вопрос в том, как сумму по какому-то столбцу отобразить в отдельном столбце
Она всегда будет в отдельном столбце, если, конечно, конкатенацию сумм в строках не сделать, типа такого
Код: sql
1.
2.
3.
SELECT
  CAST( SUM( FIELD1 ) AS VARCHAR( 20 ) ) || ' | ' || CAST( SUM( FIELD2 ) AS VARCHAR( 20 ) )
FROM TABLE1


Но маловероятно, что у тебя проблема разделить суммы из одного столбца в два. Значит, она всегда будет в отдельном столбце.
...
Рейтинг: 0 / 0
10.01.2018, 14:15
    #39581733
YuRock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
Симонов Денис,

А, да, наверно ты прав. И даже без over().
...
Рейтинг: 0 / 0
10.01.2018, 14:17
    #39581737
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
YuRock,

без over() придётся подзапросы делать
...
Рейтинг: 0 / 0
10.01.2018, 14:53
    #39581760
чччД
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
noob2018Добрый день!
Подскажите с запросом.
Исходная таблица:
nametypepricestuff125stuff223stuff314stuff427stuff518
Результат:
nametypepricesumType1sumType2stuff1251215stuff2231215stuff3141215stuff4271215stuff5181215
Нужны колонки с суммами по каждому типу.
Если заранее неизвестно, сколько типов - нельзя. Аминь.
...
Рейтинг: 0 / 0
10.01.2018, 14:55
    #39581764
WildSery
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
чччД,

Чё это вдруг? Очень даже можно.
Автору нужен такой запрос:
Код: sql
1.
select name, type, price from table1


Остальное в построителе отчёта.
...
Рейтинг: 0 / 0
10.01.2018, 15:35
    #39581812
чччД
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
WildSery,
зачем додумывать за ТС.
Нужны колонки с суммами по каждому типу.

Использовать "построитель отчётов" (или ещё что) - вопроса не было. В "построителе отчётов" вообще много чего сделать можно, но к теме "помогите с запросом" сие не относится.
...
Рейтинг: 0 / 0
10.01.2018, 16:08
    #39581847
YuRock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
Симонов ДенисYuRock,

без over() придётся подзапросы делать
Возможно ТС'у SUM с кейсом внутри достаточно.
...
Рейтинг: 0 / 0
10.01.2018, 18:15
    #39581973
WildSery
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
чччД,

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


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