Another option is to use
CTE[
^].
For further information, please see:
Using Common Table Expressions[
^]
WITH common_table_expression (Transact-SQL)[
^]
DECLARE @items TABLE(ItemMaster INT IDENTITY(1,1), ItemName VARCHAR(30))
INSERT INTO @items(ItemName)
VALUES ('A'), ('B'), ('C')
;WITH CTE AS
(
SELECT 1 As NoOfDay
UNION ALL
SELECT NoOfDay +1 AS NoOfDay
FROM CTE
WHERE NoOfDay < 366
)
SELECT t2.ItemMaster, CONVERT(DATE, DATEADD(DD, t1.NoOfDay, GETDATE())) AS MyDate
FROM CTE AS t1, @items AS t2
ORDER BY t2.ItemMaster, t1.NoOfDay
OPTION (MAXRECURSION 0)
Result:
ItemMaster MyDate
1 2015-10-06
1 2015-10-07
1 2015-10-08
1 2015-10-09
1 2015-10-10
...
2 2015-10-06
2 2015-10-07
2 2015-10-08
2 2015-10-09
2 2015-10-10
...
3 2015-10-06
3 2015-10-07
3 2015-10-08
3 2015-10-09
3 2015-10-10