Похоже, вам нужно узнать о языке SAS!
Этот ряд вещей, происходящих в скобках, является опциями шага данных
Вы можете использовать эти опции, когда бы вы ни ссылались на таблицу, даже в proc sql
Варианты у вас есть:
firstobs : Это запускает подачу данных на записи ввода в вашем случае 2, это означает, что SAS запустится на таблице на второй записи.
keep : при этом будут использоваться только поля в списке, а не все поля в таблице
rename = rename переименует поле, поэтому оно работает как псевдоним в SQL
OBS = ограничит количество записей, которые вы извлекаете из таблицы, например top или limit в SQL
DROP = удалит поля, выбранные из таблицы в вашем случае все используется, что означает, что он удаляет все поля.
что касается функций:
LAG сохраняет значение из предыдущей записи для поля, которое вы поставили в скобках, поэтому DPD_CLOSE_OF_BUSINESS_DT
INF = Работает как случай или если. По сути, вы создаете условие в 1-м аргументе, а затем 2-й аргумент применяется, когда ваше условие в 1-м аргументе истинно, 3-й аргумент выполняется в том случае, если ваше условие в 1-м аргументе ложно.
Таким образом, чтобы ответить на этот вопрос, если это первая запись для переменной SOR_LEASE_NBR, тогда поле Prev_COB_DT будет. в противном случае это будет предыдущее значение DPD_CLOSE_OF_BUSINESS_DT.
Лучший совет, который я могу вам дать, - это начать поиск в SAS и имя функции, которая вас интересует, что она делает, тогда это вопрос инкапсуляции!
Надеюсь, это поможет!