2013-08-29 14 views
0

使用SQL Server 2008SQL:CTE帶回頂級導致每個類別

;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