Я пытаюсь сделать функцию пейджинга с изображениями, он хорошо работает, когда я делаю заказ, как это:Исключить строки в SQL Server 2008 запрос
WHERE tblUploadedImages.ImageID NOT IN (
SELECT TOP (@Exclude) ImageID FROM tblUploadedImages
ORDER BY tblUploadedImages.Added)
ORDER BY tblUploadedImages.Added
Это работает. Но некоторые изображения не исключаются, когда я показываю изображения 11-20, когда я заказываю, сколько людей любит изображения.
ALTER PROCEDURE GetMostLikedImages
@Exclude INT
AS
SELECT TOP (10)
(SELECT COUNT(DISTINCT UserID)
FROM tblLike
WHERE tblUploadedImages.ImageID = tblLike.ImageID) AS LikeCount,
(SELECT COUNT(ImageID)
FROM tblUploadedImages) AS ImageCount,
tblUploadedImages.ImgUrl,
tblUploadedImages.ImageID
FROM
tblUploadedImages
WHERE
tblUploadedImages.ImageID NOT IN
(SELECT TOP (@Exclude)
(SELECT COUNT(DISTINCT UserID)
FROM tblLike
WHERE tblUploadedImages.ImageID = tblLike.ImageID) AS LikeCount
ORDER BY LikeCount DESC, tblUploadedImages.Added)
ORDER BY
LikeCount DESC, tblUploadedImages.Added
Кто-нибудь знает, как я могу заставить его работать, если я заказываю по LikeCount
(сколько человек, который любит изображения)
Почему вы не используете paginate с помощью CTE и ROW_NUMBER()? – cairnz
Я думал, что будет проще ... – user1007103
Спасибо, что решил мою проблему. Я обыскал и нашел какие-то тампельные коды. (http://sqlserverplanet.com/sql/pagination-using-rownumber) Я изменил свой запрос с помощью CTE и ROW_NUMBER(). Если вы напишете это как ответ, я проверю его. – user1007103