我想知道是否有人可以帮我解决sas问题。
我必须在现有源表中超过10000行,并将源表值插入到多个目标表中。我必须从源表中一次插入一行,并确保将父表(插入期间)的主键插入子表(插入期间)
我正在使用SAS API(SAS EG)
以下是源表的样子(请注意这是另一个表而不是数据过程),该表的名称是countrycodelist,其中包含以下列:
Txn_id statuscode Typecode classcode identifier 001 2 cnt p1 13485 002 2 na n1 13444 003 4 cnt n1 12888
现在我有目标表的以下代码: 注意:目标表已经创建,我只需插入它们(tableA / tableB)
PROC SQL;
Insert into tableA (TXNID, STATUSCODE,CREATET,LASTUPDATET)
Select TXN_ID,STATUSCODE, datetime(), datetime()
From CountryCodeList
;
退出;
在上面的代码运行之后,状态代码被插入到表sim.tableA中,但是这个表有一个自动增量的键(pk)。我需要使用此密钥插入子表,以便从父表到下面的子表进行正确的连接。
PROC SQL;
Insert into tableB (tableAID,TypeCode,ClassCode,DisplayID,)
Select 1101,TypeCode,ClassCode,Identifier
From CountryCodelist;
QUIT;
我从tableA(1101)手动插入最后一个PK#,这适用于小型表插入,但在大规模插入时,我需要从tableA中获取最后一个PK并插入到tableB中。 SQL具有诸如scope_identity()或@@ IDENTITY的使用之类的函数来获取最后插入的密钥,但这些函数在SAS中不起作用,或者我可能以错误的方式使用它。
此外,我需要从源表(CountryCodelist)一次处理这些插入。这个countrycodelist表可以随着时间的推移进行更新,并且可以超过10k记录
答案 0 :(得分:0)
好的,我会开枪。以下流程是否符合您的要求?如果是,我们可以将其转换为代码:
仍然不了解很多。例如,为什么一次记录一次?如果表A和表B总是具有相同数量的记录,那么这应该更容易。但是这样的过程对你想要的东西有意义吗?