在 Netezza 运行 SAS 格式时出现错误。我在以下代码的开头添加了格式。但是,它对 Netezza 的那些人不起作用。如果可能的话,你能帮忙看看PROC SQL部分where语句中的两个put语句吗?提前致谢!
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;