2013-08-29 5 views
0

Использование SQL Server 2008.SQL: КТР вернуть верхний результат каждой категории

;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, что я делаю неправильно здесь?

ответ

0

Для тех, кто хочет знать, запрос прекрасен, за исключением того, что ссылка для раздела была неправильной, она должна быть categoryId не refID.

+0

Если это решило ваш вопрос, отметьте ответ как принятый, чтобы показать, что эта проблема была решена :) – funkwurm

+0

требуется 48 часов, чтобы ответить на ваш собственный вопрос, как разрешено;) – lemunk

Смежные вопросы