cot*_*otz 5 sql loops while-loop sql-server-2008
我正在开发一个约会日历应用程序.还是新手.
我需要这方面的帮助.
我需要在列中有一个双循环(`calendarID,Slot,AppointmentDate').
'slot'列的值将重复为1,2,3,4,5,6,7,8至28,而calendarID将连续循环至868值.预约日期的价值将从2013年8月1日至2013年8月31日(实际上我计划这样做一整年)
预期结果
calendarID | Slot | AppointmentDate
----------------------------------------------
1 | 1 | 1 Aug 2013
2 | 2 | 1 Aug 2013
3 | 3 | 1 Aug 2013
4 | 4 | 1 Aug 2013
5 | 5 | 1 Aug 2013
6 | 6 | 1 Aug 2013
7 | 7 | 1 Aug 2013
8 |..until 28 | 1 Aug 2013
9 | 1 | 2 Aug 2013
10 | 2 | 2 Aug 2013
11 | 3 | 2 Aug 2013
...until
868 | n | n Month 2013
Run Code Online (Sandbox Code Playgroud)
这是我的代码,我尝试似乎我离我想要的输出很远.我编辑了Astrand提供的代码
DECLARE @tblCalendar TABLE(CalendarEntryID INT,
Slot INT, ADate Varchar(50))
DECLARE @x int, @y int , @d INT
SET @X = 1 SET @y = 1 SET @d = 1
WHILE @X <= 868
BEGIN
WHILE @Y <=28 AND @d <=31 AND @X <= 868 --LOOP FOR SLOT COLUMN
BEGIN
INSERT INTO @tblCalendar (CalendarEntryID,Slot, ADate)
Values (@x, @y,@d +'/Aug/2013')
SET @y = @y + 1
SET @x = @x + 1
SET @d = @d + 1
END
SET @y = 1
END
SELECT *
FROM @tblCalendar
Run Code Online (Sandbox Code Playgroud)
对于询问和编辑原始帖子的麻烦感到抱歉.
这是我的帖子的答案,以防将来像我这样的人有同样的问题。
DECLARE
@x int, @y int, @d date, @i date, @status Nvarchar(50)
SET @X = 1
SET @y = 1
SET @d = DATEADD (dd, 1 , '31/Jul/2013') -- '2013/07/01' --default date to August
SET @status = 'Available'
WHILE @X <= 868
BEGIN
WHILE @Y <=28 AND @X <= 868--LOOP FOR SLOT COLUMN
BEGIN
INSERT INTO tblCalendar (CalendarEntryID,Slot,Date,Status)
Values (@x, @y,@d,@status)
SET @x = @x + 1
SET @y = @y + 1
SET @i = @d
END
SET @d = DATEADD (dd, 1 , @i) -- THIS WILL INCREMENT THE DATE ACCORDING TO SLOT
SET @y = 1
END
SELECT *
FROM tblCalendar
Run Code Online (Sandbox Code Playgroud)