У меня есть хранимая процедура SQL, которая суммирует результаты для бейсбольной команды.Я группирую соответствующие столбцы и суммирую остальные, которые мне нужны, чтобы получить общую статистику для выбранного запросаОн отлично работает и дает мне результаты, которые я хочу.
Я сталкиваюсь с ситуацией, когда один Игрок может принадлежать к разным командам в течение одного и того же сезона, я не могу сгруппироваться по командам.Я использовал подзапрос, чтобы получить текущую команду игроков.Опять работает отлично.Но мне нужно будет получить больше индивидуальной информации, такой как текущий идентификатор команды игроков.Я не могу объединить два столбца в упомянутом выше подзапросе.Плохо ли запускать несколько подзапросов для основного запроса?Есть ли другой способ получить конкретную (или отличную) информацию из запроса при использовании Group By?
EDIT Добавлена схема таблицы.
SELECT LS.SeasonName, A.SeasonID, PM.PlayerID, PM.PFirstName, PM.PLastName,
(SELECT ILT.TeamName
FROM League_T AS ILT INNER JOIN
Season_T AS IST ON ILT.TeamID = IST.TeamID INNER JOIN
Season_P AS ISP ON IST.SeasonTeamID = ISP.Season_TeamID
WHERE (ISP.PlayerID = PM.PlayerID) AND (ISP.IsCurrent = 1)) AS 'CurrentTM',
(SELECT ILT.TeamID
FROM League_Team AS ILT INNER JOIN
Season_Team AS IST ON ILT.TeamID = IST.TeamID INNER JOIN
Season_P AS ISP ON IST.SeasonTeamID = ISP.Season_TeamID
WHERE (ISP.PlayerID = PM.PlayerID) AND (ISP.IsCurrent = 1)) AS 'CurrentTMID',
Count(Case WHEN GS = 1 THEN GS END) AS GS, --multiple SUM columns here--
FROM Player_Master PM
INNER JOIN Season_P ON PM.PlayerID = Season_P.PlayerID
INNER JOIN Season_S AS A
INNER JOIN Season_SD AS B ON A.GameID = B.GameID
INNER JOIN Season_PP AS C ON B.OutcomeID = C.OutcomeID ON Season_P.Season_PlayerID = C.SeasonPlayerID
INNER JOIN League_Season AS LS ON A.SeasonID = LS.SeasonID
WHERE (B.TeamID = @TeamID) AND (LS.IsCurrent = 1)
Group By LS.SeasonName, A.SeasonID, PM.PlayerID, PM.PFirstName, PM.PLastName