Use TempDB;
Go
If Object_Id('T_SCD','U') Is Not Null Drop Table T_SCD;Go
Create Table T_SCD(ID Int, StartDate DateTime, EndDate DateTime);
Go
--1 תקין
Insert Into T_SCD Select 1 ID, '20090101' StartDate, '20090731' EndDate;
Insert Into T_SCD Select 1 ID, '20090801' StartDate, '20090815' EndDate;
Insert Into T_SCD Select 1 ID, '20090816' StartDate, '20091031' EndDate;
Insert Into T_SCD Select 1 ID, '20091101' StartDate, '20091231' EndDate;
--2 רשומה אחת "חותכת" את האחרת
Insert Into T_SCD Select 2 ID, '20090101' StartDate, '20090731' EndDate;
Insert Into T_SCD Select 2 ID, '20090801' StartDate, '20090815' EndDate;
Insert Into T_SCD Select 2 ID, '20090810' StartDate, '20091031' EndDate;
Insert Into T_SCD Select 2 ID, '20091101' StartDate, '20091231' EndDate;
--3 רשומה אחת "בולעת" את האחרת
Insert Into T_SCD Select 3 ID, '20090101' StartDate, '20090815' EndDate;
Insert Into T_SCD Select 3 ID, '20090801' StartDate, '20090810' EndDate;
Insert Into T_SCD Select 3 ID, '20090816' StartDate, '20091031' EndDate;
Insert Into T_SCD Select 3 ID, '20091101' StartDate, '20091231' EndDate;
--4 רשומות חופפות
Insert Into T_SCD Select 4 ID, '20090101' StartDate, '20090815' EndDate;
Insert Into T_SCD Select 4 ID, '20090101' StartDate, '20090815' EndDate;
Insert Into T_SCD Select 4 ID, '20090816' StartDate, '20091031' EndDate;
Insert Into T_SCD Select 4 ID, '20091101' StartDate, '20091231' EndDate;
--5 יש "חור" באמצע
Insert Into T_SCD Select 5 ID, '20090101' StartDate, '20090731' EndDate;
Insert Into T_SCD Select 5 ID, '20090801' StartDate, '20090815' EndDate;
Insert Into T_SCD Select 5 ID, '20090816' StartDate, '20091031' EndDate;
Insert Into T_SCD Select 5 ID, '20091201' StartDate, '20091231' EndDate;
--6 תאריך ההתחלה אחרי תאריך הסיום
Insert Into T_SCD Select 6 ID, '20090131' StartDate, '20090121' EndDate;
--7 עוד אחד תקין
Insert Into T_SCD Select 7 ID, '20120101' StartDate, '20120103' EndDate;
Insert Into T_SCD Select 7 ID, '20120104' StartDate, '20120105' EndDate;
Insert Into T_SCD Select 7 ID, '20120106' StartDate, '20120108' EndDate;
Insert Into T_SCD Select 7 ID, '20120109' StartDate, '20120110' EndDate;
--8 שתי תקופות חופפות מיותרות באמצע
Insert Into T_SCD Select 8 ID, '20120101' StartDate, '20120103' EndDate;
Insert Into T_SCD Select 8 ID, '20120104' StartDate, '20120110' EndDate;
Insert Into T_SCD Select 8 ID, '20120105' StartDate, '20120106' EndDate;
Insert Into T_SCD Select 8 ID, '20120105' StartDate, '20120106' EndDate;
--9 שתי תקופות חופפות בתוך חור באמצע
Insert Into T_SCD Select 9 ID, '20120101' StartDate, '20120103' EndDate;
Insert Into T_SCD Select 9 ID, '20120108' StartDate, '20120110' EndDate;
Insert Into T_SCD Select 9 ID, '20120105' StartDate, '20120106' EndDate;
Insert Into T_SCD Select 9 ID, '20120105' StartDate, '20120106' EndDate;
--10 שני זוגות של תקופות חופפות
Insert Into T_SCD Select 10 ID, '20120101' StartDate, '20120102' EndDate;
Insert Into T_SCD Select 10 ID, '20120101' StartDate, '20120102' EndDate;
Insert Into T_SCD Select 10 ID, '20120105' StartDate, '20120106' EndDate;
Insert Into T_SCD Select 10 ID, '20120109' StartDate, '20120110' EndDate;
Insert Into T_SCD Select 10 ID, '20120109' StartDate, '20120110' EndDate;
--11 עוד אחד תקין
Insert Into T_SCD Select 11 ID, '20120101' StartDate, '20120110' EndDate;
Go
Select *
From T_SCD
Order By ID,
StartDate;