J'ai un peu de «brain fade» en cours cet après-midi, donc si quelqu'un peut aider avec cette requête mssql, ce serait fantastique.Requête SQL Server pour regrouper des données de date séquentielles
J'ai une table appelée « saisons » avec trois colonnes (il y a plus, mais rien à voir l'exemple): seasonId, date, tariffId
SeasonId est une clé unique. Une date ne peut avoir qu'un seul tarif, mais un ID de tarif peut avoir plusieurs dates différentes.
Par exemple:
seasonId | date | tariffId
----------------------------------
1 | 1 jan 2009 | 1
2 | 2 jan 2009 | 1
3 | 3 jan 2009 | 2
4 | 4 jan 2009 | 3
5 | 5 jan 2009 | 3
Je voudrais avoir une requête retourner la séquence/plage de dates sur un tariffId particulier
Par exemple, en utilisant les données ci-dessus, il retournerait les éléments suivants:
FromDate | ToDate | TariffId
-----------------------------------
1 | Jan 2009 2 | Jan 2009 1
3 | Jan 2009 3 | Jan 2009 2
4 | Jan 2009 5 | Jan 2009 3
Est-ce possible?
EDIT Merci pour toutes les réponses! Je suis toujours étonné de voir jusqu'où vous obtenez une réponse!
Cependant, mon exemple des données était probablement pas assez complexe comme gammes tarifaires peut avoir 1 jour ou plus
seasonId | date | tariffId
----------------------------------
1 | 1 jan 2009 | 1
2 | 2 jan 2009 | 1
3 | 3 jan 2009 | 2
4 | 4 jan 2009 | 3
5 | 5 jan 2009 | 3
6 | 6 jan 2009 | 1
7 | 7 jan 2009 | 1
8 | 8 jan 2009 | 3
Donnerait:
FromDate | ToDate | TariffId
------------------------------------
1 Jan 2009 | 2 Jan 2009 | 1
3 Jan 2009 | 3 Jan 2009 | 2
4 Jan 2009 | 5 Jan 2009 | 3
6 Jan 2009 | 7 Jan 2009 | 1
8 Jan 2009 | 8 Jan 2009 | 3
Idées?
Merci à tous pour votre aide à ce sujet! Ce site est génial!
Fantastique - excellente explication et exemples de code. Merci pour votre temps –