Je cherche une solution où je dois créer un ensemble d'enregistrements à partir d'un enregistrement en utilisant les données d'une autre table. La définition de la table:Division d'enregistrements dans plusieurs enregistrements à la date de début/fin
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
)
L'idée est que lorsque A contient:
1 | 01-01-2010 | 01-02-2010
2 | 01-10-2010 | 31-10-2010
et B contient:
1 | 01-01-2010 | 15-01-2010
2 | 15-10-2010 | 20-10-2010
nous recevons 5 records:
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
Actuellement nous faisons cela avec un curseur sur A et un inne r boucle curseur sur B, nous devons le faire dans SQLServer (TSQL ou dans le pire des cas CLR)
Des idées sur la façon d'écrire cela comme une sélection de sorte que la surcharge du curseur disparaît?
Il n'est pas clair quelles sont les règles pour générer les 5 enregistrements. Expliquez ce que vous essayez d'obtenir en anglais – smirkingman
dans A il y a des périodes, dans B il y a des périodes 'sub', pour chaque période dans B nous devons diviser la période dans A –