表值函数问题求教
我创建了一个表值函数
CREATE FUNCTION [dbo].[fn_GetTicker]
(
@Symbol VARCHAR(10)
,@Date DATE
)
RETURNS @RtnValue TABLE ( Ticker VARCHAR(10) )
AS
BEGIN
IF EXISTS ( SELECT 1
FROM Reports.dbo.Reports
WHERE flagshipfund_symbol = @Symbol
AND date_report = @Date )
BEGIN
INSERT INTO @RtnValue
( Ticker
)
SELECT @Symbol
UNION
SELECT T2.Symbol
FROM Reports.dbo.Reports T1
INNER JOIN Reports.dbo.ReportsFund T2 ON T1.id_report = T2.id_report
WHERE T1.flagshipfund_symbol = @Symbol
AND date_report = @Date
END
ELSE
BEGIN
INSERT INTO @RtnValue
( Ticker
)
SELECT @Symbol
UNION
SELECT T2.Symbol
FROM Reports.dbo.Reports T1
INNER JOIN Reports.dbo.ReportsFund T2 ON T1.id_report = T2.id_report
WHERE T1.flagshipfund_symbol = @Symbol
END
RETURN
END
我直接运行能返回结果
例如: SELECT * FROM dbo.fnGetTicker('10882','2014-10-28')
可是当我这样调用的时候
SELECT D.*
FROM dbo.Document AS D
CROSS APPLY dbo.fn_GetTicker(D.Symbol,D.Date)
就报错了,给我这样的提示
Msg 102, Level 15, State 1, Line 3
Incorrect syntax near '.'.
我都不知道怎么回事,那位大侠知道呢。。。。