LeagueID 2
の上位2チームがLeagueID 1
に移動し、下位2チームがLeagueID 1
に移動し、LeagueID 2
に移動する2つのリーグの間で昇格と降格を作成したいと考えています。特定の行を選択する方法
私の質問は、リーグごとのチームの数が将来変更される可能性があるので、それらのチームを選ぶ方法です。チームを降格させるためにwhere句を使用することはできません。私はLeagueID 2
からポジション1と2のプロモーションに問題のないwhere句を使用できますが、selectとcountから実行する方法がある場合は、そのメソッドも同様に実行します。
正しいチームを選んだときに必要なのは、LeagueIDを更新するだけです。
LATEST UPDATE:
UPDATE dbo.League
SET LeagueId = 2
WHERE LeagueId = 1
AND Position IN
(
SELECT TOP 2 Position
FROM dbo.League_Table
WHERE LeagueID = 1
ORDER BY Position DESC
)
UPDATE dbo.League
SET LeagueId = 1
WHERE LeagueId = 2
AND Position IN
(
SELECT TOP 2 Position
FROM dbo.League_Table
WHERE LeagueID = 2
ORDER BY Position
)
'チーム' 表:この表は、すべてのチームのための参照であり、彼らが演じるリーグ:
CREATE TABLE [dbo].[Team]
(
[TeamID] TINYINT IDENTITY(1,1) NOT NULL PRIMARY KEY,
[TeamAbbreviation] CHAR(3) UNIQUE,
[TeamName] VARCHAR(50) UNIQUE,
[LeagueID] TINYINT CONSTRAINT FK_Team_League FOREIGN KEY REFERENCES League(LeagueID),
[CountryID] TINYINT CONSTRAINT FK_Team_Country FOREIGN KEY REFERENCES Country(CountryID)
)
リーグ 'テーブル:すべてのリーグへの参照:
CREATE TABLE [dbo].[League]
(
[LeagueID] TINYINT IDENTITY(1,1) NOT NULL PRIMARY KEY,
[LeagueName] VARCHAR(30) UNIQUE,
[MinLeagueWeight] INT,
[MaxLeagueWeight] INT,
[CountryID] TINYINT CONSTRAINT FK_League_Country FOREIGN KEY REFERENCES Country(CountryID),
[ParentLeagueID] TINYINT CONSTRAINT FK_League_ParentLeague FOREIGN KEY REFERENCES League(LeagueID)
)
「League_Table」テーブル:これはリーグテーブル(上のスクリーンショットに見られるように)ビューから構成されています
SELECT [Position], [TeamName], [Played], [Wins], [Loss], [Draws], [Points], [Goals_Scored], [Goals_Against], [Goal_Difference], [LeagueID]
FROM League_Table
実質的に今シーズンリーグ1の12チームとリーグ2の12チームがありますが、次のシーズンはリーグを拡大したいと言っています(例えば14)、前のシーズンとは異なるチームポジションを探していますチーム11と12を探していますが、次のシーズンは13と14です –
トップ2チームとボトム2チームはどのように定義しますか?トップとボトムになる条件は何ですか? –
@ KaiserNayan最初の2つのポジションはトップで、最後の2つはボトムです。 – Jamiec