小编use*_*751的帖子

使用CTE的递归查询 - 给定父级的子列的SUM

我有一个论坛数据库,可以将论坛信息存储在一个列中.论坛允许无限制的子论坛.

表名 - 论坛

| ForumID | ParentForumID | Name | Description | TopicCount | ReplyCount | LastPost |
Run Code Online (Sandbox Code Playgroud)

给定ForumID的参数我想SUMTopicCountReplyCount所有子项.我也试图返回最新的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)

t-sql sql-server sql-server-2005

4
推荐指数
1
解决办法
8116
查看次数

标签 统计

sql-server ×1

sql-server-2005 ×1

t-sql ×1