Я относительно новичок в программировании SAS, но за последние несколько месяцев я освоил основы, и это удовлетворило мои потребности. Однако в настоящее время у меня проблемы, и мне нужна помощь. Я пытаюсь обновить базу данных и создать две новые переменные, которые помогут отслеживать обновления. Итак, я упростил свою проблему со следующими таблицами:
Исходная таблица
ID Record_ID Correction_ID
0001 A001
0002 A002
0003 A003 A001
0004 A004 A002
0005 A005
0006 A006 A004
Целевая таблица
ID Record_ID Correction_ID Original_Record Count
0001 A001 A001 0
0002 A002 A002 0
0003 A003 A001 A001 1
0004 A004 A002 A002 1
0005 A005 A005 0
0006 A006 A004 A002 2
Correction_ID указывает на запись, которую текущая пытается исправить/дополнить.
Количество указывает номер обновления исходной записи.
Спасибо.
Изменить
Коды Proc SQL, которые я пробовал, но не работали:
ID Record_ID Correction_ID Original_Record Count
Table 1
0001 A001 A001 0
0002 A002 A002 0
0005 A005 A005 0
Table 2
0003 A003 A001
0004 A004 A002
0006 A006 A004
SELECT ID,
Record_ID, *how to include ID from both table? Or don’t even separate?
Correction_ID, *same as above
CASE
WHEN Correction_ID is null THEN One.Original_Record
ELSE (SELECT Original_Record FROM One WHERE Two.Correction_ID=One.Record_ID)
END as Original_Record,
CASE
WHEN Count is not null THEN One.Count
ELSE (SELECT Count FROM One WHERE Two.Correction_ID=One.Record_ID) + 1
END as Count;
FROM Table 1 AS One, Table 2 AS Two;