我有一個將論壇信息存儲在單個列中的論壇數據庫。該論壇允許無限次的論壇。CTE的遞歸查詢 - 給定父級子列的SUM
表的名字 - 論壇
| ForumID | ParentForumID | Name | Description | TopicCount | ReplyCount | LastPost |
給出一個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 e.Ancestor = 1
其中1 =論壇ID的參數。
在此先感謝您的幫助!
你只需要孩子,還是需要孫輩和曾孫等? – cadrell0 2012-01-12 15:28:06