I'd worry about whether the ordernum was always sequential, so I'd do the following for the splitting apart. The remerging is a bit more macro work than I have time for. data testdata;
infile datalines dsd truncover;
input
ordernum:$3.
order:1.
code:$3.
;
datalines;
111, 1, qwe
111, 2, gfd
111, 3, sdf
222, 1, erw
222, 2, fgh
333, 1, saa
333, 2, ath
333, 3, gdw
444, 1, etg
444, 2, hef
444, 3, sfy
444, 4, hrl
555, 1, mmj
555, 2, bhg
555, 3, dgy
555, 4, ggd
555, 5, dss
;;;
%macro orderSplit;
proc sql;
SELECT DISTINCT orderNum INTO :ord1-:ord999
FROM testData;
quit;
%let cnt = &sqlObs;
%do i = 1 %to &cnt;
data order&i;
set testData;
where orderNum = "&&ord&i";
run;
%end;
%mend orderSplit;
%orderSplit;
... View more