DATA Step, Macro, Functions and more

Resolving Macro Variables that contain macro variables

Reply
Occasional Contributor
Posts: 6

Resolving Macro Variables that contain macro variables

[ Edited ]

I have created a list of macro variables in a PROC SQL without error.  When I create the macro variables I have a list of parameters (costval) that I have created previosuly in the job.  I cannot hard code these values because they may change and I want the flexibility to pick up any new ones that are added.  I am having trouble getting the syntax right to get these values to resolve in a DATA step further down the line.  How do I get these costvals to resolve?  Any help would be appreciated.

 

proc sql noprint ;
  select %do i = 1 %to &costvars ;
    sum(CC_&&costval&i),
  %end ;
    count(*), sum(TotalGTM)
   into
  %do i = 1 %to &costvars ;
    :ccE&&costval&i,
  %end ;
  :ccETotal, :ccEmptyGTM
  from work.emptycc ;
quit ;

Super User
Posts: 5,509

Re: Resolving Macro Variables that contain macro variables

You might find it easier if you change the names of the macro variables that SQL creates.

 

You have:

 

:ccE&&costval&i,

 

Try:

 

:ccE_&i,

 

You would still have &costval1 - &costvalN that tells you how the numbers relate to the original field names.

 

Good luck.

Super User
Posts: 11,343

Re: Resolving Macro Variables that contain macro variables

Hard to tell what may be going on. Have you tried using options mprint or  adding a %put _user_; statement after the proc sql to see what your code is resolving to?

Are you getting any errors? If so what are they?

Ask a Question
Discussion stats
  • 2 replies
  • 153 views
  • 0 likes
  • 3 in conversation