我正在尝试编写一个存储过程(使用 SQL Server Management Studio 2008 R2)来从表中检索最大测量值。这似乎是一件容易的事,所以我编写了一个简短的存储过程来获取 MAX。但是,当我运行该过程时,它返回 0 而不是预期的 0.018 值。
当我将鼠标悬停在 MAX 函数上时,它会显示“内置函数 MAX(expression) RETURNS int”。因此,它似乎将我的结果转换为 int。这很烦人。
我想除非这里有人有更简单的解决方案,否则我将不得不计算最大值。有任何想法吗?
ALTER PROCEDURE [dbo].[GetMaxOscillation] (@SerialNumber varchar (16), @Date datetime)
AS
BEGIN
SET NOCOUNT ON;
DECLARE @MaxOsc DECIMAL(18,6)
SELECT @MaxOsc = MAX(Value)
FROM LoadListingOscillations
WHERE SerialNumber=@SerialNumber AND Date=@Date AND Value IS NOT NULL
RETURN @MaxOsc
SET NOCOUNT OFF
END