data a;
input Name $ Stockcode Quantity Price;
cards;
a 1 100 5
a 2 200 6
a 2 100 6
b 3 300 7
b 3 100 7
c 1 500 5
;
run;
proc print data=a;
run;
data b;
set a;
Name_stockcode=compress(name||Stockcode);
run;
proc print data=b;
run;
proc sort data=b out=c;
by Name_stockcode;
run;
data d;
set c;
by Name_stockcode;
retain cn_Quantity;
if first.Name_stockcode then do;
cn_Quantity=.;
end;
cn_Quantity+Quantity;
if last.Name_stockcode then do;
keep
name
stockcode
cn_Quantity
price;
output;
end;
run;