我在tableA和tableB中有以下数据。
表A,列:TXNID,DUMPDT
表B,列:TXNID,DUMPDT
我需要比较这两个表A和B中的TXNID,然后如果表B中不存在TXNID,那么我需要用缺少的TXNID更新表B. TXNID是一个字符列,最多包含50个字符,DUMPDT是一个dt列,日期类型格式,长度为8个字符(格式为DATETIME22.3 / informat DATETIME22.3)
我正在考虑使用数组,因为作为源表的表A可能会不时有不同的行数,所以我真的不知道表A中有多少行采取和比较表B.
我目前有以下代码,但它似乎没有正常工作,对不起我是SAS新手所以请原谅我的错误,我相信我已经做了,我尝试使用多维数组:
data work.tableA;
set tableA;
array TXNID[*, 1] $ 50 ;
run;
data work.tableB;
set tableA;
array TXNID[*, 1] $ 50 ;
run;
我假设只要在TXNID列的表A和表B中都存在值,我将不得不使用某种do循环来比较值
非常感谢任何帮助或建议
答案 0 :(得分:1)
我会用SQL来解决这个问题。这里我们得到tableA中存在但不在tableB中的所有TXNID,并将它们插入到tableB中。
proc sql;
INSERT INTO work.tableB
select a.TXNID, a.DUMPDT
from work.tableA a
where a.TXNID not in (select TXNID from work.tableB);
quit;