2015-10-21 105 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