0

SQL サーバー 2008 を使用します。

;WITH cte AS
(
   SELECT *,
     ROW_NUMBER() OVER (PARTITION BY refId ORDER BY refid DESC) AS rn
   FROM Products
)
SELECT ProductCategories.Id, 
ProductCategories.Title, 
ProductCategories.languageId, 
ProductCategories.RefId, 
Url
FROM 
 cte
RIGHT JOIN
 RoundupAcademy.dbo.ProductCategories
ON 
 dbo.ProductCategories.RefID = cte.CategoryId
WHERE rn = 1

このクエリは、すべての結果を返すのではなく、各カテゴリの上位の結果を返す必要があります。

refidに基づいた一番上のものが必要なだけですが、ここで何が間違っていますか?

4

1 に答える 1

0

知りたい人のために、パーティションの参照が間違っていたことを除いて、クエリは問題ありません。refID ではなく、categoryId である必要があります。

于 2013-08-29T12:03:08.217 に答える