Ich habe eine Datenbank mit NBA-Player-Statistiken erstellt, um SQL und SSRS zu üben. Ich bin neu in der Arbeit mit gespeicherten Prozeduren, aber ich habe die folgende Prozedur erstellt, die (ich denke) es erlauben soll, das Team und die Anzahl der Minuten anzugeben.Neue Daten können nicht in SQL-Abfrage abgerufen werden
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;
Ich habe dann versucht unten durch Ausführen der Abfrage die SP zu verwenden:
DECLARE @team NCHAR,
@minutes DECIMAL
EXECUTE extrapstats @team = 'OKC', @minutes = 35
SELECT *
Wenn ich das tun, begegne ich diese Meldung:
Msg 263, Level 16, State 1, Line 5
Must specify table to select from.
ich verschiedene Varianten ausprobiert habe davon, aber nichts hat funktioniert. Ich dachte, der SP spezifiziert die Tabellen, aus denen die Daten ausgewählt werden sollen.
Irgendwelche Ideen?
Sie haben dort eine Anweisung 'SELECT *' dangling. Sie haben keine Tabelle zur Auswahl angegeben. Daher die Fehlermeldung. –