列と行を持つテーブルがあります (チーム ID 2 の D レコードがないことに注意してください)
必要なのは、次のようなタイプ (この場合は O または D) に基づく列名を使用して、チーム ID ごとに 1 つのレコードを取得できるクエリです。
機能するクエリを見つけましたが、あまり効率的ではないようです。また、将来的には、グループの「G」など、新しい順位タイプが追加された別の記録を分析する必要があるかもしれません.
SELECT s.StandingsId,
s.StandingsTypeId,
s.TeamId,
s.Wins,
s.Losses,
s.Ties,
s.SortOrder,
s.WinLossPct,
(select
ds.Wins
FROM Standings AS ds
WHERE ds.StandingsTypeId = 'D'
AND ds.TeamId = s.TeamId) AS DivisionWins,
(select
ds.Losses
FROM Standings AS ds
WHERE ds.StandingsTypeId = 'D'
AND ds.TeamId = s.TeamId) AS DivisionLosses,
(select
ds.Ties
FROM Standings AS ds
WHERE ds.StandingsTypeId = 'D'
AND ds.TeamId = s.TeamId) AS DivisionTies,
(select
ds.WinLossPct
FROM Standings AS ds
WHERE ds.StandingsTypeId = 'D'
AND ds.TeamId = s.TeamId) AS dWinLossPct,
t.TeamName,
t.ConferenceId,
t.DivisionId,
t.GroupId
FROM Standings s
LEFT JOIN Team t ON
s.TeamId = t.TeamId
WHERE s.StandingsTypeId = 'O'
前もって感謝します。