У меня есть таблица, как показано ниже в DB2 -
Date | Catg| Amount
2018-05-21 | 2 | 583227.57485
2018-05-21 | 5 | 2200097.73226
2018-05-22 | 2 | 116246.63551
2018-05-22 | 4 | 231116.66241
2018-05-22 | 5 | 244093.91680
2018-05-31 | 1 | 244714.77015
2018-05-31 | 2 | 288946.64734
2018-05-31 | 3 | 330801.32189
2018-05-31 | 5 | 345984.62256
2018-06-05 | 4 | 228612.55653
2018-06-05 | 5 | 244944.22519
2018-06-11 | 2 | 288940.63303
2018-06-11 | 3 | 344938.50723
2018-06-11 | 4 | 346234.65196
2018-06-11 | 5 | 375935.22568
Я хочу создать отчет за июнь до 22 числа для каждой категории. Поэтому я хочу, чтобы отчет был -
Date | Catg| Amount
2018-06-01 | 1 | 244714.77015 -- Being 5/31 is latest for 6/1
2018-06-01 | 2 | 288946.64734 -- Being 5/31 is latest for 6/1
2018-06-01 | 3 | 330801.32189 -- Being 5/31 is latest for 6/1
2018-06-01 | 4 | 231116.66241 -- Being 5/22 is latest for 6/1
2018-06-01 | 5 | 345984.62256 -- Being 5/31 is latest for 6/1
.
.
.
.
.
2018-06-22 | 1 | 244714.77015 -- Being 5/31 is latest for 6/22
2018-06-22 | 2 | 288940.63303 -- Being 6/11 is latest for 6/22
2018-06-22 | 3 | 344938.50723 -- Being 6/11 is latest for 6/22
2018-06-22 | 4 | 346234.65196 -- Being 6/11 is latest for 6/22
2018-06-22 | 5 | 375935.22568 -- Being 6/11 is latest for 6/22
Я не знаю, выполнимо ли это даже с SQL. Я успешно сгенерировал даты, но не уверен, как назначить им непосредственные предыдущие значения.
Я сгенерировал даты с помощью кода ниже -
WITH DATE_TAB(DATES) AS (
SELECT DATE('2018-06-01') DATES
FROM SYSIBM.SYSDUMMY1
UNION ALL
SELECT DATES + 1 DAYS AS DATES
FROM DATE_TAB
WHERE DATES < '2018-06-22')
SELECT DATES
FROM DATE_TAB
Любая помощь очень ценится.
Заранее спасибо !!!