Multi-select prompt value not storing "count"

Accepted Solution Solved
Reply
Contributor
Posts: 40
Accepted Solution

Multi-select prompt value not storing "count"

Hello,
I am using a multi-value prompt and have the code below. The prompt is called "DRGFilterCommas". I am getting a message when I run this that "DRGFilterCommas_Count" is not initialized and this is causing the program to work as intended (see below) even though earlier in the log it displays that the value of DRGFilterCommas_Count is 1. Any ideas as to why this is?


My code:

data _null_;
length DRGsCommas_List $10000;
if symget('DRGFilterCommas_Count')>=1 then do;
DRGsCommas_List=cats("'", tranwrd("&DRGFilterCommas", ",", "','"), "'");
put DRGsCommas_List; /* just for checking */
put DRGFilterCommas_COUNT; /* just for checking */
call symputx('DRGsCommas_WHERE_CLAUSE',cats('and dr.DRGCode in (',DRGsCommas_List,')'));
call symputx('DRGsCommas_JOIN_CLAUSE','INNER JOIN SQL_STG.DRG dr ON dr.DRGKey = e.DRGKey');
call symputx('DRGs_List_Displayed',DRGFilterCommas);
end;
else do;
call symputx('DRGs_List_Displayed',"ALL");
end;
run;


Log shows the following:

%LET DRGFilterCommas_count = 1; 

NOTE: Variable DRGFilterCommas_COUNT is uninitialized.

 

Thanks,

KelseyB


Accepted Solutions
Solution
‎12-16-2015 10:25 AM
Super User
Posts: 5,365

Re: Multi-select prompt value not storing "count"

Macro variables and DATA step variables are not the same thing.  It's probably too large a topic to try to go into detail here, except to say that macro variables are not contained within a SAS DATA set. 

 

I would recommend two changes.  First, get rid of the diagnostic statement:

 

put DRGFilterCommas_COUNT; /* just for checking */

 

And change this statement:

 

if symget('DRGFilterCommas_Count')>=1 then do;

 

Based on what I think you are trying to accomplish, it should look like this:

 

if &DRGFilterCommas_Count>=1 then do;

 

Good luck.

View solution in original post


All Replies
Solution
‎12-16-2015 10:25 AM
Super User
Posts: 5,365

Re: Multi-select prompt value not storing "count"

Macro variables and DATA step variables are not the same thing.  It's probably too large a topic to try to go into detail here, except to say that macro variables are not contained within a SAS DATA set. 

 

I would recommend two changes.  First, get rid of the diagnostic statement:

 

put DRGFilterCommas_COUNT; /* just for checking */

 

And change this statement:

 

if symget('DRGFilterCommas_Count')>=1 then do;

 

Based on what I think you are trying to accomplish, it should look like this:

 

if &DRGFilterCommas_Count>=1 then do;

 

Good luck.

Contributor
Posts: 40

Re: Multi-select prompt value not storing "count"

Thank you Astounding.  That worked!

🔒 This topic is solved and locked.

Need further help from the community? Please ask a new question.

Discussion stats
  • 2 replies
  • 281 views
  • 0 likes
  • 2 in conversation