0

我想编写一个以 INT 形式返回的函数,它是符合特定条件的记录数。

我试过这个,它运行......但它保持安静 - 它不返回任何东西。我猜它只是在后台运行选择。

ALTER FUNCTION [dbo].[f_InboundCallsPerUser](@p_User varchar(50), @p_sd datetime, @p_ed datetime)
RETURNS INT
WITH EXECUTE AS CALLER
AS
BEGIN
Return(SELECT  COUNT(*) 
FROM CallDetail
WHERE LocalUserID = @p_user
AND InitiatedDate BETWEEN @p_sd AND @p_ed
AND UPPER(CallDirection) = 'OUTBOUND'
AND LineDurationSeconds > 0);
END;

你是怎样做的?

4

1 回答 1

2

采用

SELECT [dbo].[f_InboundCallsPerUser](@p_User, @p_sd , @p_ed)

我猜你可能是EXEC-ing它。在这种情况下你需要做

DECLARE @Result INT
EXEC @Result =[dbo].[f_InboundCallsPerUser] @p_User, @p_sd , @p_ed 
SELECT @Result

查看返回值。

于 2012-11-28T15:09:59.847 回答