您好我在sqlserver 2008中创建了一个udf函数... 当我尝试访问它时会出错 “无效的对象名称'dbo.Function_Client” 我想从表中返回记录的数量,并将其分配给变量以返回...所以它是一个标量函数......我已经实现了if else逻辑..
我的udf
CREATE FUNCTION [dbo].[Function_Clients] (@ClientAlias varchar(10) ,
@TimePeriod int, @TypeOfTimePeriod varchar(1))
RETURNS INT
AS
BEGIN
DECLARE @COUNT INT;
IF(@ClientAlias='AEP' AND @TypeOfTimePeriod ='M')
Set @COUNT = (SELECT DISTINCT COUNT(*) AS 'NO_AEP' from dbo.Engagement INNER JOIN
dbo.Client ON dbo.Engagement.ClientIdentifier = dbo.Client.ClientIdentifier
WHERE (dbo.ClientInvolvementRole.ClientInvolvementID = '1356790AERTY')
AND (CONVERT(datetime, dbo.Engagement.EndDate, 103)
<= CONVERT(datetime, DATEADD(MONTH, @TimePeriod , GETDATE()), 103))
ELSE
---SAME ABOVE CODE BUT REPLACING MONTH WITH DAY AS
---"DATEADD(DAY,@TimePeriod , GETDATE()), 103)" IN WHERE CONDITION .
...if else (for various client alias)
RETURN @COUNT;
END
GO
对于每个@clientalias我想根据我在@TypeOfTimePeriod中的输入添加月份和部分。 例如,@ TypeOfTimePeriod ='M'表示月份,或者'D'表示要添加到dateadd部分的日期。
我从dbo.Clients('AEP',12,'M')中调用了这样的select *
但显示错误 无效的对象名称'dbo.Function_NoOfClients'。
我可以使用dbo.view1访问该视图...但不是这个udf ... 我的udf中的任何问题......请帮助我...