You can try something like
DECLARE @Table TABLE(
Date DATETIME,
Name VARCHAR(50),
Dept VARCHAR(50)
)
INSERT INTO @Table SELECT '12 Feb 2009', 'Raja', 'IT'
INSERT INTO @Table SELECT '13 Feb 2009', 'Ravi', 'CSE'
INSERT INTO @Table SELECT '14 Feb 2009', 'Ramu', 'ECE'
DECLARE @StartDate DATETIME,
@EndDate DATETIME,
@Count INT
SELECT @Count = COUNT(1) FROM @Table
SELECT @StartDate = '12 Feb 2009',
@EndDate = '12 Mar 2009'
;WITH Dates AS (
SELECT @StartDate DateVal,
0 ID
UNION ALL
SELECT DateVal + 1,
(ID + 1) % @Count
FROM Dates
WHERE DateVal + 1 <= @EndDate
),
RowNumbers AS(
SELECT *,
ROW_NUMBER() OVER(ORDER BY Date) ID
FROM @Table
)
SELECT *
FROM Dates d LEFT JOIN
RowNumbers r on d.ID + 1 = r.ID
Take a look
vb.net/#
,
DECLARE @Table TABLE(
Date DATETIME,
Name VARCHAR(50),
Dept VARCHAR(50),
Time VARCHAR(5)
)
INSERT INTO @Table SELECT '12 Feb 2009','Raja','IT','09:00'
INSERT INTO @Table SELECT '13 Feb 2009','Ravi','CSE','18:00'
INSERT INTO @Table SELECT '14 Feb 2009','Ramu','ECE','10:00'
SELECT *,
Date AS StartDate,
CASE
WHEN CAST(LEFT(Time,2) AS INT) > 17 THEN Date + 1
ELSE DATE
END EndDate
FROM @Table
, ROW_NUMBER(), .
This is how you would insert values
DECLARE @InsertTable TABLE(
DateVal DATETIME,
ID INT,
Date DATETIME,
Name VARCHAR(50),
Dept VARCHAR(50)
)
DECLARE @Table TABLE(
Date DATETIME,
Name VARCHAR(50),
Dept VARCHAR(50)
)
INSERT INTO @Table SELECT '12 Feb 2009', 'Raja', 'IT'
INSERT INTO @Table SELECT '13 Feb 2009', 'Ravi', 'CSE'
INSERT INTO @Table SELECT '14 Feb 2009', 'Ramu', 'ECE'
DECLARE @StartDate DATETIME,
@EndDate DATETIME,
@Count INT
SELECT @Count = COUNT(1) FROM @Table
SELECT @StartDate = '12 Feb 2009',
@EndDate = '12 Mar 2009'
;WITH Dates AS (
SELECT @StartDate DateVal,
0 ID
UNION ALL
SELECT DateVal + 1,
(ID + 1) % @Count
FROM Dates
WHERE DateVal + 1 <= @EndDate
),
RowNumbers AS(
SELECT *,
ROW_NUMBER() OVER(ORDER BY Date) ID
FROM @Table
)
INSERT INTO @InsertTable
SELECT d.DateVal,
d.ID,
r.Date,
r.Name,
r.Dept
FROM Dates d LEFT JOIN
RowNumbers r on d.ID + 1 = r.ID
OPTION (MAXRECURSION 0)
SELECT *
FROM @InsertTable