| Author |
Topic |
|
sql777
Constraint Violating Yak Guru
314 Posts |
Posted - 2008-05-28 : 17:48:45
|
| Hi,My database looks like:CategoryID ParentID Title Sort1 -1 Cars 12 1 Honda 13 -1 Bikes 24 1 Ford 25 1 Toyota 36 3 Kawasaki 1How can I retrieve the values in the following order:1, 2, 4, 5, 3, 6I have:WITH MYCTE(categoryID, parentID, Title, Sort)( SELECT TOP 1 categoryID, parentID, Title, Sort FROM Categories WHERE parentID = -1 ORDER BY Sort ASC UNION ALL SELECT c.categoryID, c.parentID, c.title, c.sort FROM Categories c INNER JOIN MYCTE cte ON (cte.categoryID = c.parentID)) SELECT *FROM MYCTEIt doesn't seem to work though? Help! hehe |
|
|
tkizer
Almighty SQL Goddess
38200 Posts |
Posted - 2008-05-28 : 17:50:56
|
| Could you explain in words how to get that order?Tara KizerMicrosoft MVP for Windows Server System - SQL Serverhttp://weblogs.sqlteam.com/tarad/Database maintenance routines:http://weblogs.sqlteam.com/tarad/archive/2004/07/02/1705.aspx |
 |
|
|
sql777
Constraint Violating Yak Guru
314 Posts |
Posted - 2008-05-28 : 18:38:24
|
| It is displaying all the top level categories in order, and each top level categories sub categories (if present).1. Cars- Honda- Ford- Toyota2. Bikes- KawasakiMake sense? |
 |
|
|
SwePeso
Patron Saint of Lost Yaks
30421 Posts |
Posted - 2008-05-29 : 03:02:17
|
[code]DECLARE @Sample TABLE (CategoryID INT, ParentID INT, Title VARCHAR(20), Sort INT)INSERT @SampleSELECT 1, -1, 'Cars', 1 UNION ALLSELECT 2, 1, 'Honda', 1 UNION ALLSELECT 3, -1, 'Bikes', 2 UNION ALLSELECT 4, 1, 'Ford', 2 UNION ALLSELECT 5, 1, 'Toyota', 3 UNION ALLSELECT 6, 3, 'Kawasaki', 1;WITH Yak (CategoryID, ParentID, Title, Sort, Path, Indent)AS ( SELECT CategoryID, ParentID, Title, Sort, '\' + CAST(CategoryID AS VARCHAR(MAX)), 0 FROM @Sample WHERE ParentID = -1 UNION ALL SELECT TOP 100 PERCENT s.CategoryID, s.ParentID, s.Title, s.Sort, y.Path + '\' + CAST(s.CategoryID AS VARCHAR(12)), y.Indent + 1 FROM @Sample AS s INNER JOIN Yak AS y ON y.CategoryID = s.ParentID ORDER BY Sort)SELECT CategoryID, Title, IndentFROM YakORDER BY Path[/code] E 12°55'05.25"N 56°04'39.16" |
 |
|
|
sql777
Constraint Violating Yak Guru
314 Posts |
Posted - 2008-06-02 : 17:56:42
|
| So I guess it would make it easier if I just maintain a 'Path' column in the database? |
 |
|
|
|
|
|