data have;
input Account Credit_Limit Transaction_amount;
cards;
1 1000 500 Approve 500
1 1000 900 Decline 500
1 1000 400 Approve 100
2 2000 1000 Approve 1000
2 2000 1500 Decline 1000
2 2000 2000 Decline 1000
2 2000 1000 Approve 0
;
run;
data want;
set have;
by Account;
if first.Account then cum=0;
cum+Transaction_amount;
_Transaction_amoun=Transaction_amount;
if cum<=Credit_Limit then Decision='Approve ';
else do;
cum=cum-_Transaction_amoun;
Decision='Decline ';
end;
OTB_remaining=Credit_Limit-cum;
drop _Transaction_amoun cum;
run;
... View more