2015-10-21 107 views
0

我在SQL中有一個名爲AlbumSongs的表,其中包含一個AlbumID,一個SongID爲TrackNumber,其中TrackNumber的值爲int。我還有一張名爲「Album」的表格,它具有AlbumID,AlbumName和其他列。我試圖列出表格中的所有專輯和每張專輯的曲目總數。然而,每當我運行查詢時,我最終都會得到一張專輯和巨大的TrackNumbers。使用max()函數在sql中列出總列數

Select Albums.AlbumTitle, Max(AlbumSongs.TrackNumber) from Albums 
join AlbumSongs on Albums.AlbumID=AlbumSongs.AlbumID 
order by AlbumTitle; 

如果有人可以幫我這個錯誤我將不勝感激

+0

我希望它可以與最大磁道數返回1個結果 - 不是一個巨大的跟蹤號碼總數 – PaulF

回答

0

您需要組的結果

Select Albums.AlbumTitle, Max(AlbumSongs.TrackNumber) from Albums 
join AlbumSongs on Albums.AlbumID=AlbumSongs.AlbumID 
group by Albums.AlbumID 
order by AlbumTitle; 
+0

感謝您的意見。我還有一個問題。如果我要寫這個相同的查詢,而只是返回小於12的曲目的專輯,我會在那裏插入該專輯?在Max聲明旁邊,或在您剛剛提供的Group By聲明旁邊? – povermye

+0

嘗試此_Select Albums.AlbumTitle,MAX(AlbumSongs.TrackNumber)全領先 從相簿 通過Albums.AlbumID 加入AlbumSongs上Albums.AlbumID = AlbumSongs.AlbumID 組具有全領先<12 爲了通過ALBUMTITLE; _ – PaulF

+1

完善。感謝您的幫助,我很感激 – povermye