Tu ne précises pas ton SGBD, et ni le rendu exact attendu.
Avec DuckDB tu peux faire :
with ds (pers_id, pers_grp_id, date_debut, date_fin) as (
values
( 862, 1, '2023-10-05', '2025-10-31'),
(1050, 278, '2025-01-23', '2025-06-06'),
(1145, 161, '2025-05-14', '2026-04-10'),
(1097, 372, '2025-05-12', '2025-06-26'),
(1125, 372, '2025-05-26', '2025-05-26'),
( 919, 251, '2025-06-16', '2025-08-29'),
(1089, 279, '2025-06-30', '2026-06-01'),
)
pivot ds
on strftime(date(date_fin), '%G-W%V')
using list(distinct pers_grp_id)
group by pers_id
order by all asc;
Ce qui donnera :

Si tu veux toutes les colonnes entre date_debut et date_fin alors il faudra une table utilitaire calendrier ou une CTE récursive.
Partager