проверить предыдущие записи для определения значения c - PullRequest
0 голосов
/ 25 марта 2020

Мне нужна помощь в teradata, где мне нужно проверить, является ли текущий STS_CD = '3', затем просмотреть предыдущие записи и проверить, имеет ли STS_IN значение 'Y' для этого EMP_ID и получить соответствующее значение UPDT_DT. Мне нужно заполнить значение для всех записей, но не для текущей записи.

Не могли бы вы помочь, как этого добиться? EMP_ID STS_IN STS_CD UPDT_DT NEW_COLUMN 123 N 3 2/5/2020 2/3/2020 123 N 4 2/4/2020 2/3/2020 123 Y 5 2/3/2020 2/3/2020 123 N 6 2/2/2020</p> <p>

1 Ответ

0 голосов
/ 25 марта 2020

Это, кажется, дает результаты, которые вы ищете

SELECT EMP_ID, STS_IN, STS_CD, UPDT_DT,
  LAST_VALUE(CASE WHEN STS_IN = 'Y' THEN UPDT_DT END IGNORE NULLS)
    OVER (PARTITION BY EMP_ID ORDER BY UPDT_DT ASC) as NEW_COLUMN
FROM EMP
ORDER BY EMP_ID, UPDT_DT DESC
...