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;
Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9. Sign up by March 14 for just $795.
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.