2011-07-19 40 views
1

我想從另一個標量值函數(fn_SeqAvgSimilarityUnderNode2)調用表值函數(dbo.fn_SelectAlignedSequences)。下面是該查詢Microsoft SQL查詢幫助

Create Function [dbo].[fn_SeqAvgSimilarityUnderNode] 
    (@AlnID int, @ParentTaxID int, @SeqTypeID int, @LocationID int) 
RETURNS FLOAT 
AS 
BEGIN 
    Declare @AvgSim float 

    ;With Seqs (SeqID) as 
    (-- All aligned sequences under the node 
     select dbo.fn_SelectAlignedSequences(@AlnID, @ParentTaxID, @SeqTypeID, @LocationID) 
    ) 

    Select @AvgSim = AVG(Similarity) 
    From (
       Select s1.SeqID 
         ,s2.SeqID 
         ,dbo.fn_pairwiseSimilarity(@AlnID, s1.SeqID, s2.SeqID) as 'Similarity' 
       From Seqs s1 cross join Seqs s2 
       Where s1.SeqID < s2.SeqID 
      ) t 
    return @AvgSim 
END 

查詢不工作,但是當我打電話功能dbo.fn_SeqAvgSimilarityUnderNode,錯誤彈出。

錯誤消息「無法找到其中任何一列‘DBO’或用戶定義的函數或聚合‘dbo.fn_SelectAlignedSequences’,或者名稱不明確。

有什麼我做錯了?

回答

2

無看到代碼dbo.fn_SelectAlignedSequences我敢肯定你需要指定要選擇一列。

更改此

With Seqs (SeqID) as 
    (-- All aligned sequences under the node 
     select dbo.fn_SelectAlignedSequences(@AlnID, @ParentTaxID, @SeqTypeID, @LocationID) 
    ) 

就像這樣

With Seqs (SeqID) as 
    (-- All aligned sequences under the node 
     select ColumnName FROM dbo.fn_SelectAlignedSequences(@AlnID, @ParentTaxID, @SeqTypeID, @LocationID) 
    )