0

3 週間のローテーション メニューを使用するカフェテリアのアプリケーションを作成中です。一言で言えば、DB構造は次のとおりです。

Foodnum(int - PK - auto incrementing field)
FoodName(nvarchar - name of an Item)
FoodStation(nvarchar - name of station in cafeteria i.e grill, entree, salad bar)
WeekNum(int field -  containing 1 - 3)
DayNum(int field - containing 1 - 7)

SQLに開始日を保存せずに、次を3週間ローテーションしてから(最初からやり直すために)ループするにはどうすればよいですか。これは可能ですか?

編集 済み 別のテーブルを作成しましたが、startdate という列にあるのは、datetime.now に設定されたラベルの値だけです。したがって、その値は現在 2013-06-07 14:24:08.000 です

4

2 に答える 2

3

同じ構造を維持し、クエリの where 句で次のようにするとどうなりますか

WHERE WeekNum = (DATEPART(WEEK, GETDATE()) % 3) + 1

そうすれば、常に 1 ~ 3 の数字が得られます。今日は 23 週目なので、3 週目のメニューになります。

于 2013-06-07T21:39:12.067 に答える
0

@ user185791これは私が最終的に使用したものです。正しい方向へのポイントに感謝し、称賛します。これが役立つと思う人が他にもいることを知っているので、この回答を追加することは役立つと感じました。

WHERE [WeekNum] = (DATEPART(WEEK, GETDATE()) % 3) + 1 AND [DayNum] = DATEPART(DW, GETDATE())

本当にありがとう!

于 2013-06-13T22:53:07.187 に答える