Mam duży zestaw danych, który dla celów niniejszego pytanie ma 3 pola:Okresy kondensacyjne czas z SQL
- Grupa Identifier
- od daty
- Do tej pory
On każdy dany wiersz zawsze będzie mniejszy niż To Date
, ale w każdej grupie okresy czasu (które nie są w żadnej kolejności) reprezentowane przez pary w innym, a nawet identyczne.
To, co chciałbym skończyć, to zapytanie, które skrapla wyniki dla każdej grupy aż do ciągłych okresów. Na przykład grupa, która wygląda następująco:
| Group ID | From Date | To Date |
--------------------------------------
| A | 01/01/2012 | 12/31/2012 |
| A | 12/01/2013 | 11/30/2014 |
| A | 01/01/2015 | 12/31/2015 |
| A | 01/01/2015 | 12/31/2015 |
| A | 02/01/2015 | 03/31/2015 |
| A | 01/01/2013 | 12/31/2013 |
spowodowałoby to:
| Group ID | From Date | To Date |
--------------------------------------
| A | 01/01/2012 | 11/30/2014 |
| A | 01/01/2015 | 12/31/2015 |
Czytałem wiele artykułów o dacie pakowania, ale nie mogę dość dowiedzieć się, jak zastosować do mojego zestawu danych.
Jak skonstruować zapytanie, które dałoby mi te wyniki?
Która wersja SQL Server używasz? –
@GiorgosBetsos 2012 – matthew
Po co na nowo wynajdować koło? Itzik Ben-Gan napisał wiele artykułów na temat okresów między pakowaniem, np. http://blogs.solidq.com/en/sqlserver/packing-intervals/ – dnoeth