Hi,
I'm trying to do a do loop with proc sql. The following part of the script gives an error message:
%let totalobs = 100;
%let totalobs = &totalobs. + 1;
%put totalobs;
ERROR: Open code statement recursion detected.
Does anyone know what the issue is?
Thank you!
Your code works fine
%let totalobs = 100;
%let totalobs = &totalobs. + 1;
%put totalobs=&totalobs;
/*or*/
%let totalobs = 100;
%let totalobs = %eval(&totalobs. + 1);
%put totalobs=&totalobs;
Your code works fine
%let totalobs = 100;
%let totalobs = &totalobs. + 1;
%put totalobs=&totalobs;
/*or*/
%let totalobs = 100;
%let totalobs = %eval(&totalobs. + 1);
%put totalobs=&totalobs;
I still get the same error
Try to restart SAS and rerun
Here is my log:
1840 %let totalobs = 100;
1841
1842 %let totalobs = &totalobs. + 1;
1843
1844 %put totalobs=&totalobs;
totalobs=100 + 1
1845
1846
1847 /*or*/
1848
1849 %let totalobs = 100;
1850
1851 %let totalobs = %eval(&totalobs. + 1);
1852
1853 %put totalobs=&totalobs;
totalobs=101
It works. Thank you so much
You might get that message if you made the mistake of omitting the first semicolon at the end of the first %LET statement. If that's not the cause, we might need to see the log including the SQL piece.
Don't miss out on SAS Innovate - Register now for the FREE Livestream!
Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.