我有一个包含列和行的表(注意团队 id 2 没有 D 记录)
我需要的是一个查询,它允许我为每个团队 ID 检索 1 条记录,其列名基于类型(在本例中为 O 或 D),例如:
我找到了一个有效的查询,但它似乎效率不高。另外,我将来可能需要打破并拥有另一个记录,其中添加了新的排名类型,例如“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'
提前致谢。