I asked because this allows transposing to the better long format, where such issues can be coded without regard for the number of variables, and without needing dynamic code if the number of variables is not fixed:
data have;
infile datalines dlm='09'x;
input customer $ a1 a2 a3 a4 a5 a6 document;
datalines;
qqq 3000 3000 3200 3050 3500 3100 6
qqq 3000 3100 3050 3050 3050 3100 7
qqq 4000 4000 4000 4000 4000 4000 8
;
proc transpose data=have out=long (rename=(col1=value _name_=a));
by customer document;
var a:;
run;
proc sql;
create table want as
select
customer,
document,
case
when max(value) le min(value) * 1.05
/* this also covers equality of all values */
then 1
else 0
end as indicator
from long
group by customer, document
;
quit;
... View more