2011-07-19 11 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) 
    )