我想编写一个在 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;
你是怎么做到的?
使用
SELECT [dbo].[f_InboundCallsPerUser](@p_User, @p_sd , @p_ed)
我想你可能正在EXEC
- 在哪种情况下,你需要做
DECLARE @Result INT
EXEC @Result =[dbo].[f_InboundCallsPerUser] @p_User, @p_sd , @p_ed
SELECT @Result
以查看返回值。