2012-04-21 10 views
0

SQL Server 2008のクエリで行を除外する私はこのようなことで順番を行う際に、それがうまく動作します。しかし、画像を好きな人の数で注文したときに画像11-20を表示すると、一部の画像が除外されることはありません。私の問題を解決しhttp://sqlserverplanet.com/sql/pagination-using-rownumberは私がイメージしてページング機能を実行しよう

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(画像を好きどのように多くの人)

+2

なぜCTEとROW_NUMBER()を使用してページを変更しないのですか? – cairnz

+0

私はそれがこのように簡単だろうと思った... – user1007103

+2

ありがとう、それは私の問題を解決した。私はいくつかのサンプリンコードを探して見つけました。 (http://sqlserverplanet.com/sql/pagination-using-rownumber)CTEとROW_NUMBER()を使用してクエリを変更しました。あなたが答えとしてそれを書くなら、私はそれをチェックするでしょう。 – user1007103

答えて

0

で注文する場合はそれを動作させることができる方法を知っています。

関連する問題