
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Loop addmonths between two dates
Hi,
I want to create a loop to add months beetwen two for each pn.
Example i have this table with min date and max date for each pn :
For PN 12345 i need to add month until 31/04/2025 :
01/02/2023
01/03/2023
01/04/2023
01/05/2023
.
.
.
01/01/2024
.
.
31/04/2025
Thanks in advance for your help 🙂


- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
hi
try this
load *,
date(AddMonths(Date_1,iterno()-1),'DD/MM/YYYY') as NewDate
while date(Date_2)>=AddMonths(Date_1,iterno()-1) ;
;
LOAD * INLINE
[
PN,Date_1,Date_2
12345,01/02/2023,31/04/2025
5698,05/08/2024,04/08/2028
78941,01/03/2023,05/05/2026
1456987,01/02/2023,01/06/2024
](delimiter is ',');

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Bonjour @brunobertels,
J'ai pu voir vos réponses sur certains forums et il me semble que vous parlez français ?
J'ai essayé votre solution mais c'est vrai que l'exemple que j'ai mis n'était pas vraiment pertinent.
En fait ce que je souhaite faire c'est générer des dates entre chaque interval pour chaque PN.
J'ai un PN qui a plusieurs dates mais il y'a des trous entre les dates :
PN | DATE |
008Q614 | 01/02/2023 |
008Q614 | 28/02/2023 |
008Q614 | 25/11/2023 |
008Q614 | 04/12/2023 |
008Q614 | 31/12/2023 |
008Q614 | 31/05/2024 |
008Q614 | 25/11/2024 |
008Q614 | 04/12/2024 |
008Q614 | 31/12/2024 |
008Q614 | 25/11/2025 |
008Q614 | 04/12/2025 |
Pour ce cas je souhaite générer des dates entre le 01/02/2023 et le 28/02/2023 , entre 28/11/02 et le 25/11/2023 ainsi de suite, jusqu'au 04/12/2025.
J'ai essayé votre solution mais je n'ai pas le résultat attendu :
Exemple pour ce PN j'ai uniquement 2 dates (min date= 01/02/2023 et max date = 12/04/2025), du coup je souhaite générer des dates entre le 01/02/2023 et le 12/04/2025 : (01/03/2023, 01/04/2023 -jusqu'au 12/04/2025)
PN | Max Date | Min date |
91337140 | 12/04/2025 | 01/02/2023 |

.png)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content


- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Bonjour
en suivant la logique de @hic ( thank you Hic ,I have learn something more today)
peut être comme çà alors :
load *,
date(peek(DATE)) as DATE2,
;
LOAD * INLINE
[
PN,DATE
008Q614, 01/02/2023
008Q614, 28/02/2023
008Q614, 25/11/2023
008Q614, 04/12/2023
008Q614, 31/12/2023
008Q614, 31/05/2024
008Q614, 25/11/2024
008Q614, 04/12/2024
008Q614, 31/12/2024
008Q614, 25/11/2025
008Q614, 04/12/2025
](delimiter is ',');
final:
Load * ,
Age( DATE2 + IterNo()- 1, DATE) as Age,
Date( DATE2 + IterNo()-1 ) as ReferenceDate
Resident [Table]
While IterNo() <= DATE - DATE2 + 1 ;
drop table [Table];
j'ai ceci :
