Хорошо, люди, я наполовину решил свою проблему, и я считаю, что мне нужна помощь в решении другой половины.Мне удалось собрать несколько строк данных из одного столбца (TEAMS) и объединить их в один столбец, однако, похоже, мне нужно сделать то же самое с другим столбцом в том же наборе данных.
Воттекущий пример набора данных:
FIRST | LAST | YEAR | ID | TEAMS
-- -- -- -- -- -- -- -- -- -- -- -- --
Chris | Anderson | 2015 | 176 | 05 White (B)
Chris | Anderson | 2016 | 176 | 05 Royal (B)
Chris | Anderson | 2017 | 176 | 05 Royal (B), '08 Gray (B)
Chris | Anderson | 2018 | 176 | 05 Royal (B), 08 (B)
Мне нужно иметь значение VALUE года в качестве имени столбца и данные команд в качестве VALUE, например:
FIRST | LAST | 2015 | 2016 | 2017
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
Chris | Anderson | 05 White (B) | 05 Royal (B) | 05 Royal (B), '08 Gray (B)
Вотмой существующий оператор SQL, который создает текущий (первый) набор данных.
SELECT DISTINCT TOP 100 PERCENT dbo.Coaches.FirstName, dbo.Coaches.LastName, dbo.Teams.clubYear, dbo.Coaches.CoachID,
STUFF (( SELECT ', '+ SUBSTRING(TeamName,14,len(TeamName)) + ' ('+LEFT(gender,1)+')'
FROM dbo.Teams ST
WHERE ST.CoachID = dbo.Coaches.CoachID AND ST.clubYear = dbo.Teams.clubYear
ORDER BY clubYear, CoachID
FOR XML PATH('')), 1, 1, '') AS Teams FROM dbo.Coaches INNER JOIN
dbo.Teams ON dbo.Coaches.CoachID = dbo.Teams.CoachID
WHERE dbo.teams.teamTypeID = 3
GROUP BY dbo.Coaches.FirstName, dbo.Coaches.LastName, dbo.Teams.clubYear, dbo.Teams.TeamName, dbo.Coaches.CoachID
ORDER BY dbo.Coaches.LastName, dbo.Coaches.FirstName, dbo.Teams.clubYear