参数中的T SQL用例

时间:2012-10-24 13:08:50

标签: tsql

我尝试使用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

1 个答案:

答案 0 :(得分:2)

您只需要分配@dty一次:

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

否则,如果@dty不在1到3之间,您只需覆盖@dtm