私はこの現在のSPを持っています:
ALTER PROCEDURE [dbo].[GetHighestDrop]
@val1 AS FLOAT ,
@val2 AS FLOAT ,
@val3 AS FLOAT
AS
BEGIN
select case when @val1 < @val2 then
case when @val1 < @val3 then @val1
else @val3
end
when @val2 < @val3 then @val2
else @val3
end
END
私はそれをこの構文で呼んでいます:
SELECT
GetHighestDrop @val1=((clmnA/clmnB)-1)*100,@val2=2,@val3=3
FROM dbo.tstTable
clmnAとclmbBには、次のように別々に実行すると、数値が含まれます。
SELECT ((clmnA/clmnB)-1)*100 FROM dbo.tstTable
フロートである結果が得られますが、GetHighestDropを実行すると、失敗します。
なぜですか?