Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
27.01.2014, 12:35
|
|||
|---|---|---|---|
|
|||
Преобразование диапазона дат |
|||
|
#18+
Добрый день. Помогите пожалуйста с запросом для диапазонов дат. Есть простой запрос: Код: sql 1. 2. 3. 4. Который возвращает список дат и поле debt для каждой из них. Результат выглядит приблизительно так: DATE debt 2013-03-15 00:00:00 70453.6800000000 2013-03-18 00:00:00 -70453.6800000000 2013-05-30 00:00:00 113332.6000000000 2013-06-03 00:00:00 -113332.6000000000 2013-08-09 00:00:00 327807.4700000000 2013-08-12 00:00:00 -327807.4700000000 2013-09-13 00:00:00 110962.3000000000 2013-09-16 00:00:00 815207.9000000000 2013-09-17 00:00:00 -926170.2000000000 В результирующей таблице необходимо получить строки таким образом: Если dept стал положительным - DATE - отображается как stardate. Дата когда поле dept < необходимо выводить как enddate. При этом если попадается подряд две даты с положительным debt - в stardate выводиться только первая дата. То есть для этих данных результат должен иметь такой вид: stardate enddate 2013-03-15 00:00:00 2013-03-18 00:00:00 2013-05-30 00:00:00 2013-06-03 00:00:00 2013-08-09 00:00:00 2013-08-12 00:00:00 2013-09-13 00:00:00 2013-09-17 00:00:00 Заранее премного благодарен) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.01.2014, 15:55
|
|||
|---|---|---|---|
|
|||
Преобразование диапазона дат |
|||
|
#18+
группировка по разности двух разнооконных row_number-ов. либо lead с последующим sum() over(order by). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.01.2014, 11:02
|
|||
|---|---|---|---|
|
|||
Преобразование диапазона дат |
|||
|
#18+
Добрый Э - Эх, Спасибо огромное. Про lead ищу, а вот "по разности двух разнооконных row_number-ов" - не уловил. Можно поконкретней суть подхода? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.01.2014, 11:56
|
|||
|---|---|---|---|
|
|||
Преобразование диапазона дат |
|||
|
#18+
вот пример реализации на lead/lag Синтаксис оракловый, но всё должно быть понятно. На row_number-ах вариант не совсем под твою ситуацию, но теоретически, можно и его заточить под твою задачу. Когда нечем будет заняться - покажу как... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.01.2014, 12:08
|
|||
|---|---|---|---|
|
|||
Преобразование диапазона дат |
|||
|
#18+
Вот комбинированный вариант на разнооконных row_number-ах + lead ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=43&tablet=1&tid=1601186]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
65ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
35ms |
get tp. blocked users: |
1ms |
| others: | 274ms |
| total: | 423ms |

| 0 / 0 |
