2010-07-02 15 views
1

這裏正確地恢復數據的功能是:UDF不能在T-SQL編程

ALTER FUNCTION dbo.FN_GET_QUARTER 
-- the parameters for the function here 
(
    @FN_Qtr_date datetime 
) 

RETURNS INT 
AS 
BEGIN 

    RETURN datepart(qq,@FN_Qtr_date) 
END 

這裏是SQL報告:

IF(SELECT(OBJECT_ID('TEMPDB..#T1'))) IS NOT NULL DROP TABLE #T1 


SELECT  L_NUMBER, LAST_MAINTENANCE_DATE, 
      dbo.FN_FICO_BANDS (LAST_MAINTENANCE_DATE) AS FN_Qtr_date 
INTO #T1 
FROM OPENQUERY(SrvLink, ' 

SELECT  LOAN_NUMBER,LAST_MAINTENANCE_DATE 
FROM BDE.loan_V 
FETCH FIRST 1000 ROWS ONLY WITH UR ') 
GO 


SELECT  COUNT(*), FN_Qtr_date 

FROM #T1 
GROUP BY FN_Qtr_date 
ORDER BY FN_Qtr_date 

結果:

L count    FN_Qtr_Date 
    150     Invalid 
    355     Invalid 

我不是確定我做錯了什麼..

+1

你定義'FN_GET_QUARTER'並調用'FN_FICO_BANDS': - ? – 2010-07-02 19:34:40

回答

1

,在跳出的第一件事我是你叫dbo.FN_FICO_BANDS而不是dbo.FN_GET_QUARTER

0

dbo.FN_FICO_BANDS(LAST_MAINTENANCE_DATE)AS FN_Qtr_date

如果你打算使用上LAST_MAINTENANCE_DATE的功能,你需要使用: dbo.FN_Qtr_Date(LAST_MAINTENANCE_DATE)AS YourQuarter