I am looking for a solution in which I need to create a recordset from one record using data from another table. Table definition:
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
)
The idea is that when A contains:
1 | 01-01-2010 | 01-02-2010
2 | 01-10-2010 | 31-10-2010
and B contains:
1 | 01-01-2010 | 15-01-2010
2 | 15-10-2010 | 20-10-2010
we get 5 entries:
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
We are currently doing this with the cursor on A and the cursor of the inner loop on B, we must do this in SQLServer (TSQL or, in the worst case, CLR)
Any ideas on how to write this as select so the cursor overhead disappears?
source
share