私は予定カレンダーアプリケーションを開発しています。まだここで初心者です。SQL Server 2008でdouble whileループを使用する方法
私はこの分野で助けが必要です。
私はカラム( `calendarID、Slot、AppointmentDate ')に二重ループを持つ必要があります。
'slot'列は、1,2,3,4,5,6,7,8の値を28まで繰り返し持ちますが、calendarIDは868の値に連続してループします。予定日は(実際に私は1全体の年のためにこれを行うことを計画しています)1 Aug2013から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
は、私はそうしてみてください私のコードです私は私の希望する出力から非常に遠いです。 私が尋ねると、私のオリジナルのポストの編集のトラブルのために
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
申し訳ありませんAstrand
によって提供されたコードを編集しました。
2つの質問:@xは80でキャップされ、@yは16でキャップされているのはなぜですか?また、なぜVB.NETとしてタグ付けされていますか? – Tim
私はちょうど私が間違って8の代わりに16をキーインしていることに気づいた、私はすでに編集した。 実際にアプリケーションのフロントエンドはvb.net – cotz
あなたの質問はフロントエンドとは関係ありません.SQLに関するものなので、VB.NETとCalendarタグは必要ありません。 – Tim