Ich bin neu in SQL, also bitte mit mir und meinen armen Fähigkeiten; Ich möchte so viel wie möglich daraus lernen. DankSQL Server 2014 Merging Overlapping Datumsbereiche
Ich habe eine Tabelle mit 200.000 Zeilen in einer SQL Server 2014-Datenbank wie folgt aussehen:
CREATE TABLE DateRanges
(
Contract VARCHAR(8),
Sector VARCHAR(8),
StartDate DATE,
EndDate DATE
);
INSERT INTO DateRanges (Contract, Sector, StartDate, Enddate)
SELECT '111', '999', '01-01-2014', '03-31-2014'
union
SELECT '111', '999', '04-01-2014', '06-30-2014'
union
SELECT '111', '999', '07-01-2014', '09-30-2014'
union
SELECT '111', '999', '10-01-2014', '12-31-2014'
union
SELECT '111', '888', '08-01-2014', '08-31-2014'
union
SELECT '111', '777', '08-15-2014', '08-31-2014'
union
SELECT '222', '999', '01-01-2014', '03-31-2014'
union
SELECT '222', '999', '04-01-2014', '06-30-2014'
union
SELECT '222', '999', '07-01-2014', '09-30-2014'
union
SELECT '222', '999', '10-01-2014', '12-31-2014'
union
SELECT '222', '666', '11-01-2014', '11-30-2014'
UNION
SELECT '222', '555', '11-15-2014', '11-30-2014';
Wie Sie sehen können gibt es mehrere Überschneidungen für jeden Vertrag sein kann und was würde Ich mag das ist haben Ergebnis so
Contract Sector StartDate EndDate
---------------------------------------------
111 999 01-01-2014 07-31-2014
111 888 08-01-2014 08-14-2014
111 777 08-15-2014 08-31-2014
111 999 09-01-2014 12-31-2014
222 999 01-01-2014 10-31-2014
222 666 11-01-2014 11-14-2014
222 555 11-15-2014 11-30-2014
222 999 12-01-2014 12-31-2014
ich nicht herausfinden kann, wie dies getan werden kann und die Beispiele, die ich auf dieser Seite ganz gesehen habe nicht mein Problem passen.
Vielen Dank für Ihre Hilfe und Unterstützung
Wie wird EndDate '07 -31-2014' berechnet? Es ist nicht in Ihren Daten. –
Dieses Datum ist nicht in den Daten enthalten. Es sollte als das letzte Datum berechnet werden, bevor ein neuer Datumsbereich mit einem anderen Sektor begonnen wird. –
Ähnliche Fragen wurden oft vor z. https://stackoverflow.com/questions/2561130/merge-overlapping-date-intervals Sie können diesen Artikel für weitere detaillierte Erklärung, wie es zu lösen versuchen: https://www.experts-exchange.com/articles/ 3952/ranges-gaps-overlapps-for-number-and-date-ranges.html – Alex