If your complete query is supposed to run in DB2 then you need to wrap an EXECUTE statement around it like this: proc sql; connect to db2 (database=%sysget(DB2DBDFT) ril=UR); execute( INSERT INTO WRK.NEW_CL_TEST_ASH select B.TOTAL_CT, B.NC_1, B.NC_2 FROM ( SELECT COUNT(1) AS TOTAL_CT,SUM ( CASE WHEN A.R_1='Y' then 1 else 0 end ) as NC_1 ,SUM ( CASE WHEN A.R_1='N' AND A.R_2='Y' then 1 else 0 end ) as NC_2,SUM ( CASE WHEN A.R_1='N' AND A.R_2='N' AND A.R_4='Y' then 1 else 0 end ) as NC_4 FROM ( SELECT CASE WHEN (LENGTH(TRIM(TRANSLATE(cast(ABC_CT as char(4000)), ' ', '+-.0123456789 '))) > 0) THEN 'Y' ELSE 'N' END AS R_1, CASE WHEN ( ABC_CT < 0 AND ABC_CT > 600) THEN'Y' ELSE 'N' END AS R_2, CASE WHEN (ABC_CT < 0 AND ABC_CT > 600) THEN'Y' ELSE 'N' END AS R_4 FROM SASM.&&TAB_NM&i )A)B ) ; disconnect from db2; quit;
... View more