ฉันค่อนข้างใหม่กับการเขียนโปรแกรม 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;