PROC SQL;
CREATE TABLE FINAL AS
SELECT
A.ESTACION as ESTACION, A.LEVEL, A.STATUS, A.VENDOR_CODE, B.PART AS ITEMNUM, A.MOD_LEVEL, A.SERIALNUM, A.DESCRIPTION, A.DERIVED_POSITION, A.BTSUPPLIEREXPDATE,A.PURCHASE_ORDER,A.MANUFACTURER_CODE,
A.WARRCHECKDATE, a.orden
FROM B15 A JOIN CMITEM3 B ON A.DESCRIPTION=B.DESCITEM;
QUIT;
data csv;
set final;
ocb=substr(serialnum,11,4);
oc=substr(serialnum,11,3);
run;
proc sql;
create table csv2 as select a.*, case when oc like '%%H%%' then a.estacion||b.ocb end as csvf
from final a join csv b on a.serialnum=b.serialnum and a.estacion=b.estacion ;
quit;
data csv3;
set csv2;
if orden=2 then comodin=csvf;
retain comodin;
if missing(csvf) then csvf= comodin;
else comodin=csvf;
drop comodin orden;
run;
proc sort data=csv3;
by csvf;
run;
proc sql noprint;
select name into :varlist1 separated by ' ' from dictionary.columns where libname = 'WORK' and memname='CSV3' and upcase(name) not in ( 'CSVF','ESTACION');
select name into :varlist2 separated by ',' from dictionary.columns where libname = 'WORK' and memname='CSV3' and upcase(name) not in ('CSVF','ESTACION');
quit;
data _null_;
set csv3;
by csvf;
fv = "\\tsclient\C\Transferencia de Archivos\EXPORTED FINAL TABLE\OPORTO\BASTIDORES\LINEA P" ||"_"|| TRIM(put(csvf,$50.)) || ".csv";
file write filevar=fv dsd dlm=',' lrecl=32000;
if first.csvf then put "&varlist2";
put &varlist1;
run;
Hi data _null_ , actually I read some of your posts and found them very useful. Above is my code. Always interesting to learn new ways. Thanks.
... View more