Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Hierarchical SQL Select
Message
 
 
À
03/09/2009 16:57:29
John Baird
Coatesville, Pennsylvanie, États-Unis
Information générale
Forum:
Microsoft SQL Server
Catégorie:
Syntaxe SQL
Divers
Thread ID:
01422513
Message ID:
01422549
Vues:
100
John,

Try (this is a working version - used some help)
;with cte_t AS
 (
 SELECT T1.RightsName,
       T1.pk_rights,
       t1.fk_rights,
       0 AS LEVEL,

       Cast(null as varchar(max)) AS ParentName, 

       T2.RightsOrder,
       T2.Description AS ChildDescr
  FROM @Test T1
 INNER join @test T2 ON T1.pk_rights = T2.pk_rights
 WHERE T1.fk_rights IS NULL
 UNION all

 SELECT T1.RightsName,
       T1.pk_rights,

       T1.fk_rights,
       LEVEL + 1 AS LEVEL,

       D.RightsName AS ParentName,
       T1.RightsOrder,
       T1.Description AS ChildDescr
  FROM @Test T1

 INNER join cte_t D ON T1.fk_rights = D.pk_rights
)
SELECT * FROM cte_t ORDER BY fk_rights, RightsOrder, LEVEL
>Given the following sql data, how do I select this hierarchically to produce a list with the parents/children in the proper order (children ordered by rightsorder)?
>
>
>pk_rights   fk_rights   RightsName                                         RightsOrder Description
>----------- ----------- -------------------------------------------------- ----------- --------------------------------------------------
>1           NULL        Open Category Library                              0           Open Category Library
>18          NULL        Open Portfolio Footnote Library                    1           Open Portfolio Footnote Library
>2           1           Add Category Library                               0           Add Category Library
>3           1           Delete Category Library                            1           Delete Category Library
>11          2           Edit Category Library                              0           Edit Category Library
>7           2           Add Category                                       1           Add Category
>12          2           Add Category Language                              2           Add Category Language
>14          2           Add Category Caption                               3           Add Category Caption
>9           2           Delete Category                                    4           Delete Category
>16          2           Delete Category Caption                            5           Delete Category Caption
>17          2           Delete Cateogry Language                           6           Delete Cateogry Language
>8           7           Edit Category                                      0           Edit Category
>13          12          Edit Category Lanaguage                            0           Edit Category Lanaguage
>15          14          EditCategory Caption                               0           EditCategory Caption
If it's not broken, fix it until it is.


My Blog
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform