我有一个论坛数据库,可以将论坛信息存储在一个列中.论坛允许无限制的子论坛.
表名 - 论坛
| ForumID | ParentForumID | Name | Description | TopicCount | ReplyCount | LastPost |
Run Code Online (Sandbox Code Playgroud)
给定ForumID的参数我想SUM的TopicCount和ReplyCount所有子项.我也试图返回最新的LastPost,指定为DATETIME.
我搜索了谷歌和这个论坛,并了解我应该使用递归CTE,但我在理解语法时遇到一些困难.这是我的CTE - 正在进行的工作.
WITH CTE (ForumID, ParentForumID)
AS
(
SELECT ForumID AS Descendant, ParentForumID as Ancestor
FROM forums
UNION ALL
SELECT e.Ancestor
FROM
CTE as e
INNER JOIN CTE AS d
ON Descendant = d.ParentForumID
)
SELECT e.Descendant, SUM(TopicCount) AS topics, SUM(ReplyCount) AS replys
FROM CTE e
WHERE …Run Code Online (Sandbox Code Playgroud)