如何使用SQL Server实现以下功能?我想在Sitefinity中获取页数。
表结构有很多列,但下面是重要的列
**Id** **parentid** **title**
ABC DEF title1
XYZ DEF title2
LLL DEF title3
PPP ABC title4
III ABC title5
WWW PPP title6
页面可以包含子页面,子页面可以包含其他子页面。在数据库中,子页面用ID列表示,父页面用parentID表示。我怎样才能为每个父母计算孩子的数量?
答案 0 :(得分: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
答案 1 :(得分:0)
我从另一个帖子得到答案:Hierarchical Queries in 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