abr*_*pin 1 sql-server select join group-by
以下是我的表的以下记录:(我目前正在使用SQL Server 2008)
YearLevels
YearLevelID YearLevelName
1 Freshman
2 Sophomore
3 Junior
4 Senior
Run Code Online (Sandbox Code Playgroud)
学生们
StudentID FirstName LastName
1 John Doe
2 Peter Pan
3 Mark Twain
Run Code Online (Sandbox Code Playgroud)
LevelsAttained
SSID StudentID YearLevelID
1 1 2
2 1 1
3 1 3
4 2 2
5 3 1
6 2 1
Run Code Online (Sandbox Code Playgroud)
输出应该是:
FullName YearLevelName
John Doe Junior
Peter Pan Sophomore
Mark Twain Freshman
Run Code Online (Sandbox Code Playgroud)
SELECT FirstName + ' ' + LastName AS FullName, YearLevelName
FROM Students S
INNER JOIN (
SELECT StudentID, MAX(YearLevelID) AS MaxLevel
FROM LevelsAttained
GROUP BY StudentID
) MaxLevels ON MaxLevels.StudentID = S.StudentID
INNER JOIN YearLevels Y ON Y.YearLevelID = MaxLevels.MaxLevel
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
321 次 |
| 最近记录: |