Apologies for my lack of specificity. I did tried several versions of adding the new measure 'PAID' (same as COST) to the SAS code (VAR and OUTPUT statement) but the summation of PAID appears to be inaccurate. In PROC SORT 2 (see below results) amount PAID for Cardiology CARE_ELSEWHERE should be 1400, not 1125. First, I tried sum=VISITS sum=PAID ; run ; ... but PAID seemed to copy over exact values as VISITS. Secondly, I tried sum= ; run; ... this version worked best but PAID summation for CARE_ELSEWHERE is suspect. What am I doing wrong? Thanks in advance! DATA HOLLYWOODSQ ; INPUT PRODUCT_LINE$12. CITY$12. ST$3. CLINIC$5. VISITS 4.0 PAID 10.2 ; LENGTH CITYST $20. ; CITYST=CATS(CITY,'_',ST) ; CARDS ; CARDIOLOGY TEMPLE TX 0110 200 225.00 DERMATOLOGY AUSTIN TX 0110 200 300.00 INTERNAL MED SAN ANTONIO TX 0110 200 375.00 CARDIOLOGY TEMPLE TX 0110 300 225.00 DERMATOLOGY AUSTIN TX 0110 200 300.00 INTERNAL MED AUSTIN TX 0110 500 300.00 CARDIOLOGY LUBBOCK TX 0110 50 275.00 DERMATOLOGY SAN ANTONIO TX 0110 400 375.00 INTERNAL MED LUBBOCK TX 0110 100 275.00 CARDIOLOGY BUDA TX 0110 300 175.00 DERMATOLOGY AUSTIN TX 0110 200 300.00 INTERNAL MED SAN ANTONIO TX 0110 200 375.00 CARDIOLOGY BANDERA TX 0110 200 250.00 DERMATOLOGY CIBOLO TX 0110 200 250.00 INTERNAL MED SAN JOSE TX 0110 200 150.00 CARDIOLOGY SAN ANTONIO TX 0110 20 375.00 DERMATOLOGY AUSTIN TX 0110 200 300.00 INTERNAL MED SAN ANTONIO TX 0110 20 375.00 CARDIOLOGY TEMPLE TX 0110 100 225.00 DERMATOLOGY TEMPLE TX 0110 100 225.00 INTERNAL MED TEMPLE TX 0110 100 225.00 CARDIOLOGY SAN ANTONIO TX 0110 50 375.00 CARDIOLOGY SAN ANTONIO TX 0110 10 375.00 INTERNAL MED AUSTIN TX 0110 50 300.00 INTERNAL MED AUSTIN TX 0110 200 300.00 DERMATOLOGY AUSTIN TX 0110 100 300.00 DERMATOLOGY AUSTIN TX 0110 100 300.00 CARDIOLOGY TEMPLE TX 0110 100 300.00 CARDIOLOGY TEMPLE TX 0110 100 225.00 ; RUN ; PROC SUMMARY data=HOLLYWOODSQ ; var VISITS PAID; class CLINIC PRODUCT_LINE CITYST / missing ; output out=CARE_TEST3 (drop=_FREQ_) sum= ; run ; proc sort data=care_test3 (where=(_type_=6 or _type_=7)); by clinic product_line _type_ descending visits; run; PROC PRINT DATA=CARE_TEST3 ; TITLE 'PROC SORT 1' ; RUN ; data want (drop=_:); set care_test3 ; retain _total_visits r_visits; if _type_=6 then do; _total_visits=visits; r_visits=0; end; if _type_=7; r_visits+1; if r_visits<=3 then do; output; _total_visits=_total_visits-visits; end; else if r_visits=4 then do; visits=_total_visits; cityst='CARE_ELSEWHERE'; output; end; run; PROC PRINT DATA=WANT ; TITLE 'PROC SORT 2' ; RUN ; PROC SORT 1 Obs CLINIC PRODUCT_LINE CITYST _TYPE_ VISITS PAID 1 0110 CARDIOLOGY 6 1430 3025 2 0110 CARDIOLOGY TEMPLE_TX 7 800 1200 3 0110 CARDIOLOGY BUDA_TX 7 300 175 4 0110 CARDIOLOGY BANDERA_TX 7 200 250 5 0110 CARDIOLOGY SAN ANTONIO_TX 7 80 1125 6 0110 CARDIOLOGY LUBBOCK_TX 7 50 275 7 0110 DERMATOLOGY 6 1700 2650 8 0110 DERMATOLOGY AUSTIN_TX 7 1000 1800 9 0110 DERMATOLOGY SAN ANTONIO_TX 7 400 375 10 0110 DERMATOLOGY CIBOLO_TX 7 200 250 11 0110 DERMATOLOGY TEMPLE_TX 7 100 225 12 0110 INTERNAL MED 6 1570 2675 13 0110 INTERNAL MED AUSTIN_TX 7 750 900 14 0110 INTERNAL MED SAN ANTONIO_TX 7 420 1125 15 0110 INTERNAL MED SAN JOSE_TX 7 200 150 16 0110 INTERNAL MED LUBBOCK_TX 7 100 275 17 0110 INTERNAL MED TEMPLE_TX 7 100 225 PROC SORT 2 Obs CLINIC PRODUCT_LINE CITYST VISITS PAID r_visits 1 0110 CARDIOLOGY TEMPLE_TX 800 1200 1 2 0110 CARDIOLOGY BUDA_TX 300 175 2 3 0110 CARDIOLOGY BANDERA_TX 200 250 3 4 0110 CARDIOLOGY CARE_ELSEWHERE 130 1125 4 5 0110 DERMATOLOGY AUSTIN_TX 1000 1800 1 6 0110 DERMATOLOGY SAN ANTONIO_TX 400 375 2 7 0110 DERMATOLOGY CIBOLO_TX 200 250 3 8 0110 DERMATOLOGY CARE_ELSEWHERE 100 225 4 9 0110 INTERNAL MED AUSTIN_TX 750 900 1 10 0110 INTERNAL MED SAN ANTONIO_TX 420 1125 2 11 0110 INTERNAL MED SAN JOSE_TX 200 150 3 12 0110 INTERNAL MED CARE_ELSEWHERE 200 275 4
... View more