0

SQLサーバーを使用して次のことを達成するにはどうすればよいですか? Sitefinity でページ数を取得しようとしています。

テーブル構造には多くの列がありますが、以下は重要なものです

**Id**                  **parentid**                **title**
 ABC                        DEF                     title1
 XYZ                        DEF                     title2
 LLL                        DEF                     title3
 PPP                        ABC                     title4
 III                        ABC                     title5
 WWW                        PPP                     title6

ページにはサブページを含めることができ、サブページにはさらにサブページを含めることができます。データベースでは、サブページは ID 列で表され、親ページは parentID で表されます。各親の子の数を取得するにはどうすればよいですか?

4

2 に答える 2

0

私が正しく理解していれば、次のようなことで始めることができます。

select id as parent,
       title as title,
       count(*) as number_children
  from table as parent
 inner join table as children
    on children.parentid = parent.id
 group by 1,2
于 2012-09-26T20:17:22.583 に答える
0

私は他のスレッドから答えを得ました: SQL Server 2005 の階層クエリ

  WITH Parent AS
(
    SELECT
        ID,
        ParentID,
        Name AS Path
    FROM
        tblHierarchy
    WHERE
        ParentID IS NULL

    UNION ALL

    SELECT
        TH.ID,
        TH.ParentID,
        CONVERT(varchar(128), Parent.Path + '/' + TH.Name) AS Path
    FROM
        tblHierarchy TH
    INNER JOIN
        Parent
    ON
        Parent.ID = TH.ParentID
)
SELECT * FROM Parent
于 2012-10-04T20:56:14.983 に答える