Generación de pronóstico de DB2 SQL basada en la fecha de finalización de los parámetros

Resuelto userav asked hace 10 meses • 1 respuestas

Tengo una mesa con actividades. Las columnas son: ActivityId, nextDate, frecuencia. La frecuencia es en meses. Necesito una consulta que genere todas las fechas en las que se realizará la actividad según la frecuencia (en meses). Estoy usando DB2.

Tabla de actividades:

ID de actividad proxima fecha frecuencia
1 01/03/2024 2

Parámetro de donación: 31/12/2024

Salida necesaria:

ID de actividad fecha
1 01/03/2024
1 01/05/2024
1 01/07/2024
1 01/09/2024
1 01/11/2024
userav avatar Feb 16 '24 16:02 userav
Aceptado

Puedes hacerlo con un CTE recursivo

with activities (activityId, nextDate, frequency) as (
  values (1, date '2024-03-01', 2)
),
activities_this_year (activityId, firstDate, number, nextDate, frequency) as (
  select activityId, nextDate as firstDate, 1, nextDate, frequency from activities
  union all
  select
    activityId,
    firstDate,
    number + 1,
    nextDate + frequency month,
    frequency
  from activities_this_year
  where nextDate + frequency month < this_year(current date) + 1 year
)
select activityId, nextDate from activities_this_year order by activityId, nextDate

ID DE ACTIVIDAD PROXIMA FECHA
1 2024-03-01
1 2024-05-01
1 2024-07-01
1 2024-09-01
1 2024-11-01

violín

nfgl avatar Feb 16 '2024 09:02 nfgl