このサイトの初めてのポスターで、アドバイスが必要です。
while ループで新しい変数ベースを宣言/作成することは可能ですか?
環境:
この会社の財務カレンダーは、会計年度内の各日付に期間 (月) と週番号を割り当てます。これらは、新しい会計年度の日付に応じて、毎年変更される可能性があります。
while ループを実行して、指定された日付の週と期間の番号を取得する関数を作成したいと考えています。
に沿って何かを言えるようになりたい
while i > @EndDate
if date is between such and such then week = @W(i)
end
私はそれを説明する方法がわかりません。
私は現在、すべての週と期間の番号をリストする関数を持っていますが、見た目が乱雑で、おそらくあまり効率的ではありません。
誰でもアドバイスできますか?
ありがとうございました
編集:
お詫び
私のコードは SQL Server にあります。
私がこれまでに持っているものは、雑然とした完全な下書きですが、とりあえずここに入れておきます。
declare @StartDate datetime
, @EndDate datetime
, @ThisDate datetime
, @P1 datetime
, @P2 datetime
, @P3 datetime
, @P4 datetime
--and so forth until P12
, @W1 datetime
, @W2 datetime
, @W3 datetime
, @W4 datetime
, @W5 datetime
--and so forth until W52
set @StartDate = '2012-12-30'
set @P1 = @StartDate + 35
set @P2 = @P1 + 28
set @P3 = @P2 + 28
set @P4 = @P3 + 35
set @P5 = @P4 + 28
set @P6 = @P5 + 28
set @P7 = @P6 + 35
set @P8 = @P7 + 28
set @P9 = @P8 + 28
set @P10 = @P9 + 35
set @P11 = @P10 + 28
set @P12 = @P11 + 28
set @W1 = @StartDate
set @W2 = @W1 + 7
set @W3 = @W2 + 7
set @W4 = @W3 + 7
set @W5 = @W4 + 7
set @W6 = @W5 + 7
--while @ThisDate > @EndDate
set i = 1
--BEGIN
if @ThisDate between @StartDate and (@W2 - 1)
then @ThisWeek = W1, @ThisPeriod = P1
--END