#temp テーブルにデータを入力し、そのレコードに対して処理を行ってから、レコードを選択するストアド プロシージャがあります。
問題は、関数インポートを作成して [列情報の取得] をクリックすると、結果ペインに「選択したストアド プロシージャまたは関数は列を返しません」というメッセージが表示されることです。
データベースから直接実行すると、期待される結果セットが返されるため、実際に列が返されるという事実を知っています。
ストアド プロシージャは次のように要約できます。
SELECT P.PersonID, P.Surname, P.NickName, P.DateofBirth
INTO #SeriesCompleted
FROM
Table1 T (NOLOCK)
INNER JOIN
Table2 P (NOLOCK) ON T.PID = P.PID
;
Select r.PID, SUM(rt.Distance) 'Distance'
INTO #Distance
FROM
#SeriesCompleted sc
inner join table3 rsr (NOLOCK) on rsr.SeriesId = sc.SeriesId
inner join table4 r (NOLOCK) on r.PID = sc.PID
inner join table5 rt (NOLOCK) on rt.RouteID = r.RouteID
GROUP BY r.PID;
UPDATE #SeriesCompleted
SET Distance = d.Distance
FROM #SeriesCompleted sc
INNER JOIN #Distance d on d.PID = sc.PPID;
--Here is where the result is returned.
SELECT distinct sc.PersonID, sc.NickName, sc.Surname, sc.DateofBirth, sc.NumberFinished, sc.Distance
FROM #SeriesCompleted SC