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に基づいた一番上のものが必要なだけですが、ここで何が間違っていますか?