我需要从一个表中查找数据,并根据if条件将它添加到主数据表中:数据是否标记为缺失。假设查找表包含国家和端口。主文件中缺少需要填写的端口名称。只有当flag = 1(它缺失)时,它才会使用查找来填充它们。根据IF条件(MERGE/SQL)在一个表中查找值并添加到数据集?
此命令不起作用(不会填满它&不会保持OBS与标志= 0):
proc sql;
create table data.varswprice1 as
select *
from data.varswprice a left join data.LPortsFill b
on a.LoadCountry = b.LoadCountry and a.LoadArea = b.LoadArea
where LPortMiss = 1;
quit;
这里有位数据的例子...
查找表(3个VARS):
LoadPort LoadCountry LoadArea
ARZEW ALGERIA NAF
MASTER(许多VARS):
OBS LoadPort LoadCountry LoadArea LPortMiss
1 ALGERIA NAF 1
2 ADELAIDE AUSTRALIA SEOZ 0
因此,它需要在LOOKUP(ARZEW)中根据LPortMiss = 1和LoadCountry和LoadArea相等的事实填写MASTER中的第一个obs。在LOOKUP和MASTER中还有更多的obs,但我希望能更好地说明问题。
你可以举一些数据的例子吗?此外,您应该回到您的其他问题,并“接受”适合您的答案,正如其中一条评论中所建议的那样。这给了人们一个回答你问题的动机。 – itzy 2012-02-01 14:43:30