I have an error when I run SAS format at Netezza. I added the format at the beginning of the following code. However, it didn't work those at Netezza. If possible, could you help to see the two put statement in where statement at PROC SQL part? Thanks in advance!
data antib;
set 'P:\HSE\SPARC\SPARC Study\Docs\sparc_ndc_final_05202013.sas7bdat';
if ndc ~='';
start=NDC;
label='Y';
type='C';
fmtname='antib';
run;
proc sort data=antib nodupkey;
by ndc;
run;
proc format cntlin=antib;run;
data stdyfmt(keep=start label fmtname);
set pharm.pulllist (where=(flag='study'));
start=sub_num;
label='in';
fmtname='$stdy';
run;
proc sort nodup;by start;run;
proc format cntlin=stdyfmt;run;
libname sparc "/bcbsuser/hse/jfan0001/SPARC";
%let cov_start='01Jan2008';
%let cov_end='31Dec2008';
data _null_;
call symput('start',trim(left(&cov_start.d -'31DEC1983'd)));
call symput('end',trim(left(&cov_end.d -'31DEC1983'd)));
run;
%let cov_start = '01-01-2008';
%let cov_end = '12-31-2008';
LIBNAME DW NETEZZA UID=jfan0001
PWD=xxxxxxxx
SERVER=bsnet01z
database=PDWAPPRP
preserve_tab_names=yes
connection=global;
proc sql noprint ;
connect to netezza (user=jfan0001 pwd=xxxxxxxx SERVER=bsnet01z database=PDWAPPRP connection=global autocommit=yes);
execute( Create temporary table PHARM_STDY_DW as
select distinct
D.MEM_NUM , D.SUB_NUM , D.MEM_BIRTH_DT, D.MEM_GENDER,
A.PRESCRIPT_NUM ,
A.PRESCRIB_NPI ,
A.NUM_REFILLS ,
A.incurred_dt_key ,
B.CLM_NDC ,
C.MDDB_TC_CLASS_CD ,
A.METRIC_QUANTITY ,
A.DAYS_SUPPLY ,
A.PRESCRIB_DEA_NUM ,
FROM
V_PHARM_SERVICE A,
V_PHACLM_DRUG B,
V_MDDB_DRUG C,
V_CLAIM_MEMBER_PROFILE D,
V_INCURRED_DATE E
WHERE
PUT(D.SUB_NUM, $stdy.) = 'in' and /*problem for this statement*/
PUT(B.CLM_NDC, $antib.) = 'Y' and /*problem for this statement too*/
A.curr_clm_ind ='Y' and
A.MEM_PROF_KEY = D.MEM_PROF_KEY and
A.PHACLM_DRUG_KEY = B.PHACLM_DRUG_KEY and
A.MDDB_DRUG_KEY = C.MDDB_DRUG_key and
A.INCURRED_DT_KEY = E.INCURRED_DT_KEY and
E.INCURRED_DT_DAY between &cov_start and &cov_end
) by netezza;
/* bulkunload table from netezza to ADM as SAS dataset */
create table SPARC.PHARM_STDY_DW_08 as
select * from DW.PHARM_STDY_DW
(bulkunload=YES BL_DELIMITER='|' bl_options='logdir "."');
disconnect from netezza;
quit;