Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Преобразование диапазона дат
|
|||
|---|---|---|---|
|
#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, 12:35 |
|
||
|
Преобразование диапазона дат
|
|||
|---|---|---|---|
|
#18+
группировка по разности двух разнооконных row_number-ов. либо lead с последующим sum() over(order by). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2014, 15:55 |
|
||
|
Преобразование диапазона дат
|
|||
|---|---|---|---|
|
#18+
Добрый Э - Эх, Спасибо огромное. Про lead ищу, а вот "по разности двух разнооконных row_number-ов" - не уловил. Можно поконкретней суть подхода? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2014, 11:02 |
|
||
|
Преобразование диапазона дат
|
|||
|---|---|---|---|
|
#18+
вот пример реализации на lead/lag Синтаксис оракловый, но всё должно быть понятно. На row_number-ах вариант не совсем под твою ситуацию, но теоретически, можно и его заточить под твою задачу. Когда нечем будет заняться - покажу как... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2014, 11:56 |
|
||
|
Преобразование диапазона дат
|
|||
|---|---|---|---|
|
#18+
Вот комбинированный вариант на разнооконных row_number-ах + lead ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2014, 12:08 |
|
||
|
|

start [/forum/topic.php?fid=43&fpage=28&tid=1601186]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
131ms |
get topic data: |
22ms |
get forum data: |
3ms |
get page messages: |
67ms |
get tp. blocked users: |
1ms |
| others: | 277ms |
| total: | 533ms |

| 0 / 0 |
