I know FriedEgg have already given you a good solution. options validvarname=any;
proc format;
invalue $ infmt
'Global'=1
'Region'=2
'Customer'=3;
run;
proc sql;
create table foo(cycle num
,pl1 num
,pl2 num
,pl3 num
,sm num
,'2012-05 Global'n num
,'2012-05 Region'n num
,'2012-05 Customer'n num
,'2012-03 Global'n num
,'2012-03 Region'n num
,'2012-03 Customer'n num
,'2012-04 Global'n num
,'2012-04 Region'n num
,'2012-04 Customer'n num);
insert into foo values(1,1,1,1,1,1,1,1,1,1,1,11,1,1);
select cats('"',name,'"n') into : list separated by ' '
from dictionary.columns
where libname='WORK' and memname='FOO' and name not in ('cycle' 'pl1' 'pl2' 'pl3' 'sm')
order by input(compress(name,,'kd'),best8.) desc, input(scan(name,-1),$infmt.);
quit;
proc print data=foo noobs;
var cycle pl1 pl2 pl3 sm &list;
run;
Ksharp
... View more