我有一個SQL存儲過程,可以爲棒球團隊總結結果。我'分組'按適當的列和總結其他人,我需要所選查詢的統計數據。它工作正常,並給我我想要的結果。SQL Server - 通過查詢獲取特定數據
我在運行的情況是在一個玩家可以在同一賽季內屬於不同團隊的情況下,我不能靠團隊組。我所做的是我使用了一個子查詢來獲得球員的目前的球隊。再次,工作正常。但是我需要獲得更多的個人信息,例如球員目前的teamID。我不能在上面提到的子查詢中組合兩列。對主查詢運行多個子查詢是不好的做法嗎?在使用Group By時,有沒有其他方法可以從查詢中獲取特定(或不同的)信息?
編輯 添加了表格模式。
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
請提供您的表格模式的詳細信息。 – 2011-05-11 21:37:54