Ниже приведен пример исходных данных:
Ожидаемый результат следующий:
Данные в основном группируются по A_ID, B_ID, C_ID, а затем в пределах этого значения для каждого времени, когда GR_CNT равен NULL, соответствующие значения для GR_MATERIAL и GR_SERIAL реплицируются для вышеуказанных строк. LAST_DT и DATE_TIME отсортированы в порядке возрастания.
Ниже приведен запрос, который я пробовал, но я не уверен, как получить значения GR_MATERIAL и GR_SERIAL, которые находятся посередине в данных.
sel a.*,coalesce(max(GR_MATERIAL) over (partition by A_ID, B_ID, C_ID order by LAST_DT,DATE_TIME), -1) as col2,<br>
coalesce(max(GR_SERIAL) over (partition by A_ID, B_ID, C_ID order by LAST_DT,DATE_TIME), -1) as col3<br>
from table a<br>
Создание двух новых столбцов для GR_MATERIAL и GR_SERIAL с необходимыми значениями также подойдет.
Я использую TD16