我需要從一個表中查找數據,並根據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