我有一張表格,可以爲每場比賽選擇20名球員中的11名球員(根據他們的位置)。我所做的是創建一個稱爲「FixturePlayer」的新表,以便將PlayerID和FixtureID存儲到表中。如何從CTE中插入表格
但我不知道如何將pl.PlayerID和pl.FixtureID插入到'PlayerFixture'表中,因爲我已經調用了select。我該怎麼辦?
WITH pl AS (SELECT DISTINCT p.PlayerID
,p.Position
,CASE WHEN p.TeamID = 0 THEN 0
ELSE p.playerWeighting END AS playerWeighting
,ABS(CHECKSUM(NewID())) % 10 + 1 AS Form
,t.TeamID
FROM dbo.Fixture f
INNER JOIN dbo.League l ON f.LeagueID = l.LeagueID
INNER JOIN dbo.Team t ON l.LeagueID = t.LeagueID
INNER JOIN dbo.Player p ON t.TeamID = p.TeamID
WHERE f.WeekNumber = 1)
,po AS (SELECT *, ROW_NUMBER() OVER(PARTITION BY pl.TeamID, pl.Position ORDER BY NEWID()) AS Rnk FROM pl)
,total AS (SELECT TeamID
,SUM(playerWeighting) AS TeamWeight
,SUM((playerWeighting/10) * Form + playerWeighting) AS FinalTeamWeight
FROM po
WHERE (po.Position = 'GK' and po.rnk = 1) OR
(po.Position = 'DF' and po.rnk <= 4) OR
(po.Position = 'MF' and po.rnk <= 4) OR
(po.Position = 'FW' and po.rnk <= 2)
GROUP BY po.TeamID
CREATE PROCEDURE [dbo].[MatchDay_Insert]
AS
SET NOCOUNT ON
BEGIN
SELECT [TeamID], [TeamWeight], [Form], [FinalTeamWeight]
FROM TeamWeighting
ORDER BY TeamID
select * from player
END
PlayerFixture:
CREATE TABLE [dbo].[PlayerFixture]
(
[FixtureID] INT NOT NULL PRIMARY KEY,
[PlayerID] INT NULL
)
提供PlayerFixture表的DDL,根據上面的示例數據插入哪些數據。 –
我已經改變了這個問題,並且包含了PlayerFixture表的模式 –