如何在 SQL Server 2008 r2 中的函数中返回记录



我想编写一个在 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

以查看返回值。

最新更新