Hi:
Without seeing the entire program it is hard to know -exactly- what is going on. However, in general, PROC REPORT process report items in this fashion:
-- Report item appears on the COLUMN statement (this could be a data set variable, a statistic or a computed item)
Every report row is initialized to missing at the start of the report row. This means that items which appear in a COLUMN statement are automatically initiallized at the start of every report row.
--Temporary report variables do NOT appear in the COLUMN statement-- this means that you are probably ONLY using these variables in COMPUTE blocks.
Temporary report variable values (possibly like HOLD, HOLD1, etc) are automatically retained. It is your responsibility to figure out when the variable value needs to be reset. Frequently, this is done by testing the use of the _BREAK_ automatic variable or done in a COMPUTE before block:
[pre]
compute before physician_name;
hold5=physician_name;
**OR;
hold5 = ' ';
endcomp;
[/pre]
For more information about how the REPORT procedure works, refer to these documentation topics and papers:
http://support.sas.com/documentation/cdl/en/proc/61895/HTML/default/a002473631.htm (specifically the section entitled "Building a Report That Uses Temporary Variables")
http://www2.sas.com/proceedings/sugi31/060-31.pdf
http://www2.sas.com/proceedings/forum2007/242-2007.pdf
cynthia