SAS 逐个字段检查



我尝试构建小检查过程。一个proc sql生成了一行表(和 13 个字段(,下一步我需要检查表中的选定字段是否value <> 0。 在我当前(未完成(的代码下面,带有示例表"have"

data Have;
input REFERENCE_DATE  
L_CONTRACT 
L_CONTRACT_ACTIVITY
L_LFC
L_CONTRACT_CO_CUSTOMER
L_CONTRACT_OBJECT
L_CUSTOMER
L_CUSTOMER_RETAIL
L_DPD
L_GL_ACCOUNT 
L_GL_AMOUNT
L_EXTRA_COST 
L_PRODUCT;
datalines;
450 1 9 8 6 0 4 3 0 0 0 0 0
;
Data work.Collect_data2;
set work.have;
ARRAY tab(13) _temporary_ (0,0,0,0,0,0,0,0,0,0,0,0,0) ;
ARRAY tab_check(*) L_CONTRACT-L_CUSTOMER_RETAIL;
input id L_CONTRACT-L_CUSTOMER_RETAIL;
do j= 2 to 7;
end;
run;

我需要从L_CONTRACT到L_CUSTOMER_RETAIL(字段 2 到 7(逐个字段检查。 如果此片段中的任何字段的值 = 0 - 我需要返回某些内容不正常的信息。 感谢您的帮助!

此致敬意

length flag $10.;
if whichn(0, of L_contract -- l_customer_retail) then flag='Not Ok';
else flag='Ok';

可以使用WHICHN()函数来测试一系列变量中的任何值是否为 0。无需数组声明。 我很困惑为什么你有一个INPUT声明和一个SET声明,但没有INFILE或"CARDS"。 这对我来说没有意义。

编辑:将单个破折号更改为两个破折号。

最新更新