2017-06-20 23 views
0

SQLとSSRSを実践するためだけにNBAプレーヤーの統計情報を持つデータベースを作成しました。私はストアドプロシージャを扱うのが初めてですが、チームと分数を指定できるようにするには、次の手順を作成しました。私はさまざまなバリエーションを試してみたSQLクエリで新しいデータを取得できません

Msg 263, Level 16, State 1, Line 5 
Must specify table to select from. 

DECLARE @team NCHAR, 
     @minutes DECIMAL 

EXECUTE extrapstats @team = 'OKC', @minutes = 35 
SELECT * 

私はそれを行うとき、私はこのメッセージが発生します。

CREATE PROCEDURE extrapstats 
--Declare variables for the team and the amount of minutes to use in --calculations 
    @team NCHAR OUTPUT, 
    @minutes DECIMAL OUTPUT 

AS 
BEGIN 

SELECT p.Fname + ' ' + p.Lname AS Player_Name, 
     p.Position, 
     --Creates averages based on the number of minutes per game specified in @minutes 
     (SUM(plg.PTS)/SUM(plg.MP))*@minutes AS PTS, 
     (SUM(plg.TRB)/SUM(plg.MP))*@minutes AS TRB, 
     (SUM(plg.AST)/SUM(plg.MP))*@minutes AS AST, 
     (SUM(plg.BLK)/SUM(plg.MP))*@minutes AS BLK, 
     (SUM(plg.STL)/SUM(plg.MP))*@minutes AS STL,  
     (SUM(plg.TOV)/SUM(plg.MP))*@minutes AS TOV, 
     (SUM(plg.FT)/SUM(plg.MP))*@minutes AS FTs, 
     SUM(plg.FT)/SUM(plg.FTA) AS FT_Percentage, 
     (SUM(plg.FG)/SUM(plg.MP))*@minutes AS FGs, 
     SUM(FG)/SUM(FGA) as Field_Percentage, 
     (SUM(plg.[3P])/SUM(plg.MP))*@minutes AS Threes, 
     SUM([3P])/SUM([3PA]) AS Three_Point_Percentage 
FROM PlayerGameLog plg 
--Joins the Players and PlayerGameLog tables 
INNER JOIN Players p 
ON p.PlayerID = plg.PlayerID 
    AND TeamID = @team 
GROUP BY p.Fname, p.Lname, p.Position, p.TeamID 
ORDER BY PTS DESC 

END; 

は、私は、以下のクエリを実行することにより、SPを使用しようとしましたこれの、しかし何も働いていない。私はSPがデータを選択するテーブルを指定したと思った。

アイデア?

+0

「SELECT *」というステートメントがそこにぶら下がっています。選択する表が指定されていません。したがって、エラーメッセージ。 –

答えて

0

OUTPUT句を使用してストアドプロシージャのパラメータを宣言すると、ストアドプロシージャによって値が呼び出し元の関数に返されます。しかし、それらを入力パラメーターとして使用しています。両方の入力パラメーターからOUTPUT節を削除して、試してください。

また、executeステートメントでSELECT *を削除する必要はありません。これは必須ではありません。ストアドプロシージャは、selectステートメントを持つのでデータを返します。

+0

それは私の一部で初心者の動きでした。ありがとう。 – kredeker54

関連する問題