ich für eine Lösung bin, wo ich eine Reihe von Datensätzen von einem Datensatz erstellen, um Daten aus einer anderen Tabelle. Die Tabellendefinition:aufgeteilt Datensatz in mehrere Datensätze auf Start-/Enddatum
DECLARE A AS TABLE
(
AID BIGINT NOT NULL,
StartDate DATETIME NOT NULL,
EndDate DATETIME
)
DECLARE B AS TABLE
(
AID BIGINT NOT NULL,
StartDate DATETIME NOT NULL,
EndDate DATETIME NULL
)
Die Idee ist, dass, wenn A enthält:
1 | 01-01-2010 | 01-02-2010
2 | 01-10-2010 | 31-10-2010
und B enthält:
1 | 01-01-2010 | 15-01-2010
2 | 15-10-2010 | 20-10-2010
wir empfangen 5 Datensätze:
1 | 01-01-2010 | 15-01-2010
1 | 16-01-2010 | 01-02-2010
2 | 01-10-2010 | 15-10-2010
2 | 16-10-2010 | 20-10-2010
2 | 21-10-2010 | 31-10-2010
Aktuell Wir machen das mit einem Cursor auf A und einem Inne r Schleife Cursor auf B, müssen wir dies in SQLServer (TSQL oder im schlimmsten Fall CLR)
Haben Sie Ideen, wie dies als eine Auswahl schreiben, so dass der Overhead des Cursors verschwindet?
Es ist nicht klar, was die Regeln sind, um die 5 Datensätze zu generieren. Erklären Sie, was Sie in Englisch zu erreichen versuchen – smirkingman
in A gibt es Perioden, in B gibt es 'sub' Perioden, für jede Periode in B müssen wir die Periode in A aufteilen –