SQL – Konvertieren einer gespeicherten Prozedur, die eine Tabelle verwendet, um nicht

Ich habe gerade in ein Projekt geworfen, das SQL verwendet .. und diese gespeicherte Prozedur verwendet Tabellen .. Ich versuche es zu konvertieren, damit es keine Tabellen verwendet … aber ich bin so neu in SQL, dass ich bin Schwierigkeiten haben … kann mir jemand helfen oder mich vielleicht leiten? oder ist so etwas nicht möglich

Ich versuche, es so umzuwandeln, damit ich LINQ / Entity Framework in SQL verwenden kann, wenn ich diese gespeicherte Prozedur in EDML ziehe, funktioniert es nicht, weil es Tabellen verwendet

ALTER PROCEDURE [dbo].[GetGame_Passer] -- Add the parameters for the stored procedure here @GameDate varchar(8), @TricodeHome varchar(3) AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; CREATE TABLE #Passer( GameKey int, PlayerName varchar(50), Tricode varchar(3), StatString varchar(50), Position varchar(20), FantasyScore int ) DECLARE @gameKey int SET @gameKey = (SELECT GameKey FROM Games WHERE GameDate=@GameDate AND TricodeHome=@TricodeHome) INSERT #Passer SELECT TOP 1 p.GameKey, p.PlayerName, p.Tricode, p.StatString, p.Position, (p.Yards/25 + p.Touchdowns * 6 - p.Interceptions * 2) AS FantasyScore FROM GamePassers AS p WHERE p.GameKey=@gameKey ORDER BY FantasyScore DESC, p.Yards DESC SELECT g.*, p.PlayerName AS PasserName, p.Tricode AS PasserTricode, p.StatString AS PasserStat, p.Position AS PasserPosition FROM Games AS g LEFT OUTER JOIN #Passer AS p ON g.GameKey=p.GameKey WHERE g.GameDate=@GameDate AND g.TricodeHome=@TricodeHome SELECT TOP 2 p.GameKey, p.PlayerName, p.Tricode, p.StatString, p.Position FROM GamePassers AS p WHERE p.GameKey=@gameKey ORDER BY p.Yards DESC DROP TABLE #Passer END 

Jede SQL-statement kann in eine Unterabfrage umgewandelt werden, anstatt eine Tabelle zu sein. Wo Sie sich auf #passer beziehen, können Sie sich einfach auf die sql-statement beziehen, die verwendet wird, um Zeilen in #passer einzufügen.

Diese Aussage:

 SELECT g.*, p.PlayerName AS PasserName, p.Tricode AS PasserTricode, p.StatString AS PasserStat, p.Position AS PasserPosition FROM Games AS g LEFT OUTER JOIN #Passer AS p ON g.GameKey=p.GameKey WHERE g.GameDate=@GameDate AND g.TricodeHome=@TricodeHome 

Ersetzen #passer mit dem sql-Code verwendet, um #passer zu bevölkern.

 SELECT g.*, p.PlayerName AS PasserName, p.Tricode AS PasserTricode, p.StatString AS PasserStat, p.Postion AS PasserPosition FROM Games AS g LEFT OUTER JOIN ( SELECT TOP 1 p.GameKey, p.PlayerName, p.Tricode, p.StatString, p.Position, (p.Yards/25 + p.Touchdowns * 6 - p.Interceptions * 2) AS FantasyScore FROM GamePassers AS p WHERE p.GameKey=@gameKey) AS p ON g.GameKey=p.GameKey WHERE g.GameDate=@GameDate AND g.TricodeHome=@TricodeHome 

Hoffentlich habe ich dein Problem richtig verstanden.