我正在使用MySQL Server Management Studio,并且正在尝试为歌曲分类创建加权总计。这是我的SELECT语句:
SELECT
TSongs.intSongID
,TSongs.strSongName
,CASE
WHEN TUFS.intSortOrder = 1 THEN 5
WHEN TUFS.intSortOrder = 2 THEN 3
WHEN TUFS.intSortOrder = 3 THEN 1
ELSE 0
END AS intFavoriteSongCount
FROM
TSongs
LEFT OUTER JOIN TUserFavoriteSongs AS TUFS
ON( TSongs.intSongID = TUFS.intSongID )
GROUP BY
TSongs.strSong
,TSongs.intSongID
,TUFS.intSortOrder
ORDER BY
intFavoriteSongCount
权重如下:每个"用户"在数据库中有喜欢的歌曲,按intSortOrder排序。理想情况下,此SELECT语句的输出将显示每首歌曲一次,以及歌曲的组合加权总和的总和。就像现在一样,它会多次显示每首歌曲,每次播放一次"用户"最喜欢的名单。
这是一张图片,用于解释当前的问题:
我怎么能阻止这种情况发生?
答案 0 :(得分:0)
选择 TSongs.intSongID ,TSongs.strSongName ,案件 当TUFS.intSortOrder = 1那么5 当TUFS.intSortOrder = 2那么3 当TUFS.intSortOrder = 3那么1 ELSE 0 结束为intFavoriteSongCount 从 TSongs LEFT OUTER JOIN TUserFavoriteSongs AS TUFS ON(TSongs.intSongID = TUFS.intSongID) 通过...分组 TSongs.intSongID 订购 intFavoriteSongCount