|
Модераторы: Akella |
|
Desperate |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 122 Регистрация: 11.10.2006 Репутация: нет Всего: -1 |
Всем привет.
В работе с FireBird совсем зеленый . Есть такая задача, есть таблица данных продаж, например вида : Дата продажи, Сумма 05.03.2013 | 1000 06.03.2013 | 500 06.03.2013 | 600 08.03.2013 | 2000 10.03.2013 | 300 Необходимо в результат агрегировать данные с помощью Sum(это понятно, элементарный запрос) вывести в таблицу вида 05.03.2013 | 1000 06.03.2013 | 1100 07.03.2013 | null 08.03.2013 | 2000 09.03.2013 | null 10.03.2013 | 300 т.е. создать диапазон дат и там где нет данных вывести null. как подобное можно реализовать с помощью ХП? Есть идея программно создавать таблицу с диапазонов и потом джоинить к ней таблицу данных левым(правым) соединением. затем удалять таблицу, но может есть способ проще, без использования таблиц? Спасибо. П.С.: Использую морду лица IBExpert Это сообщение отредактировал(а) Desperate - 9.11.2018, 09:52 |
|||
|
||||
Akella |
|
|||
Творец Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 20 Всего: 329 |
SUM + группировка по дате?
|
|||
|
||||
Desperate |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 122 Регистрация: 11.10.2006 Репутация: нет Всего: -1 |
Это понятно, но тогда результат будет такой:
05.03.2013 | 1000 06.03.2013 | 1100 08.03.2013 | 2000 10.03.2013 | 300 А нужно 05.03.2013 | 1000 06.03.2013 | 1100 07.03.2013 | null 08.03.2013 | 2000 09.03.2013 | null 10.03.2013 | 300 |
|||
|
||||
Akina (Online) |
|
|||
Советчик Профиль Группа: Модератор Сообщений: 20570 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 3 Всего: 453 |
Создаёте секвенс, который генерит целые от нуля до (макс. разность дат в днях минус 1). Используете его как дополнительную таблицу, и с помощью DATEADD генерите все даты диапазона. LEFT JOIN-ите к нему свою таблицу. Т.е. схематично типа
Ну а под свой диалект причёсывай сам... -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Правила форума "Interbase" | |
|
Обязательно указание: 1. Версию InterBase (Firebird, Yaffil) 2. Способа доступа (ADO, BDE, IBX и т.д.)
Если Вам понравилась атмосфера форума, заходите к нам чаще! С Уважением, Akella. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Firebird, Interbase | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |