我正在创建一个计算固定资产折旧折旧的程序。 为此,我需要在过程内部基于CASE设置一个值,而CASE又基于我在Update命令中使用的表中的值。 在更新Table之前,我需要知道如何设置该变量。 问题看起来像这样:
Create procedure Depreciation
as begin
declare @k numeric (10,2)
set @k=case
when Value From a table inside the FROM(UPDATE)>1 then 2
else 3
end
update Deprectiation Table set (Deprectiation=@k*Value)
From Tables
where conditions
谢谢。
答案 0 :(得分:0)
这是一个错误的语法。你可以做类似下面的事情(虽然你发布的代码根本不清楚,不确定你想要实现的目标)
Create procedure Depreciation
as
begin
declare @k numeric (10,2);
declare @value numeric (10,2);
select @value = [Value], @k = case when [Value] > 1 then 2 else 3 end
From table1 ;
update Deprectiation set Deprectiation=@k*@value where conditions;
end
答案 1 :(得分:0)
试试这个:
Create Procedure Description
AS Begin
Update DeprectiationTable
SET Deprectiation=CASE WHEN Value>1 THEN 2 ELSE 3 END * Value
From Tables
Where conditions
End