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