|
|
Just provide a simple solution from an accounting viewpoint, say, revenue = charge + credit for each unique transaction item. <!-- s:lol: --><img src="{SMILIES_PATH}/icon_lol.gif" alt=":lol:" title="Laughing" /><!-- s:lol: --> <!-- s:lol: --><img src="{SMILIES_PATH}/icon_lol.gif" alt=":lol:" title="Laughing" /><!-- s:lol: --> <!-- s:lol: --><img src="{SMILIES_PATH}/icon_lol.gif" alt=":lol:" title="Laughing" /><!-- s:lol: --> <!-- s:lol: --><img src="{SMILIES_PATH}/icon_lol.gif" alt=":lol:" title="Laughing" /><!-- s:lol: -->
data tem;
input Card_Number $4. Charge;
cards;
A123 14.56
A123 15.23
A123 -14.56
A234 11.12
A234 3.87
A234 11.12
A234 -11.12
A234 11.12
A234 4.86
A234 -11.12
A235 10.87
A235 -10.87
;
run;
data tem;
set tem;
chg_c = put(charge, 8.2);
run;
proc summary data=tem nway;
where charge < 0;
class card_number chg_c;
var charge;
output out=credit(drop = _type_ rename=(_freq_ = ncredit charge=credit)) sum=;
run;
data credit;
set credit;
chg_c = compress(compress(chg_c, '-'), ' ');
run;
proc summary data=tem nway;
where charge >=0;
class card_number chg_c;
var charge;
output out=result(drop= _type_ rename=(_freq_ = ncharge))sum=;
run;
data result;
set result;
chg_c = compress(chg_c, ' ');
run;
proc sort data=credit; by card_number chg_c; run;
proc sort data=result; by card_number chg_c; run;
data result(keep=card_number charge);
merge result credit;
by card_number chg_c;
charge = sum(charge, credit);
if charge ne 0;
run;
proc print data=result noobs; run;
-------------------------------------------------
The SAS System
23:55 Monday, April 26, 2004 1
Card_
Number Charge
A123 15.23
A234 11.12
A234 3.87
A234 4.86 |
|