Hi,
I have a table A and I want to duplicate each row into a table B, N times.
In table A Ifor each row have:
a date d
In table B i would like:
the date d + 1 month for each new row
a number m, calculated according to new date
So I do something like
data B;
set A;
do i=0 to N;
d = INTNX('month', d, +1, 'e');
m =...;
output;
end;
run;But the issue with this, is that the original record from A is deleted and we have only date d+1 to d+n and no longer d.
I would like the programm to understand it need to keep the initial date too, and to calculate for this date the number m
Can you help me?
Thank you very much
There should be a variety of ways to make this happen. Here's one possibility:
data B;
set A;
do i=0 to N;
m=...;
output;
d=...;
end;
m=...;
output;
run;
***** EDITED to move the first OUTPUT statement.
This assumes that all else is working properly, except for getting that first calculation into the output.
If you want both d and the new date in your output, you need two variables, right?
data B;
set A;
do i = 0 to N;
newD = INTNX('month', d, i, 'END');
m =...;
output;
end;
run;
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!
Still thinking about your presentation idea? The submission deadline has been extended to Friday, Nov. 14, at 11:59 p.m. ET.
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.
Ready to level-up your skills? Choose your own adventure.