0

月に応じて会計年度を決定するために case ステートメントを使用して変数値を設定しようとしていますが、会計年度に対して Null 値が返されます。

declare
@Costcentre varchar(50)
,@dt date
,@dty int
,@dtm int

select @Costcentre = 'CAM'
SELECT @dt = '2012-09-30'
select @dtm = DATEPART(month,@dt)
select 
@dty = case when @dtm between 4 and 12 then DATEPART(year,@dt) + 1 end
,@dty = case when @dtm between 1 and 3 then DATEPART(year,@dt) end


select @dty
4

1 に答える 1

2

割り当てる必要があるのは@dty1回だけです。

select  @dty = case 
    when @dtm between 4 and 12 then DATEPART(year,@dt) + 1 
    when @dtm between 1 and 3 then DATEPART(year,@dt) 
end

それ以外の場合は、が1から3の間にない@dty場合は、上書きしているだけです。@dtm

于 2012-10-24T13:13:39.270 に答える