1
Je suis en train d'obtenir le min et les lignes maximum par groupe avec une date de fin correspondant aux lignes suivantes Date de débutGroupe par date précédente des valeurs
Date de l'entrée:
ResultUid BeginDate EndDate
1 1999-12-31 00:00:00.000 2000-01-31 00:00:00.000
1 2000-01-31 00:00:00.000 2000-02-29 00:00:00.000
1 2000-02-29 00:00:00.000 2000-03-31 00:00:00.000
1 2000-03-31 00:00:00.000 2000-04-30 00:00:00.000
1 2007-03-31 00:00:00.000 2007-04-30 00:00:00.000
1 2007-04-30 00:00:00.000 2007-05-31 00:00:00.000
1 2007-05-31 00:00:00.000 2007-06-30 00:00:00.000
Résultat souhaité:
ResultUid BeginDate EndDate
1 1999-12-31 00:00:00.000 2000-04-30 00:00:00.000
1 2007-03-31 00:00:00.000 2007-06-30 00:00:00.000
J'ai essayé:
SELECT
ResultUid,
MIN(BeginDate) AS "min",
MAX(EndDate) AS "max",
lag
FROM (
SELECT
ResultUid,
BeginDate,
EndDate,
DATEDIFF(MONTH,lag(BeginDate) OVER (order by EndDate), EndDate) AS "lag"
FROM Results
GROUP BY
ResultUid,
BeginDate,
EndDate
) sub
GROUP BY
ResultUid,
lag