连接此贴 http://bbs.csdn.net/topics/390750481?page=1#post-397105608
太快结贴了, 没看仔细,。 是我没表达清楚, 我想求得 Level 比自己大的金额和自己金额的总和
Id parentId Bail 得到这一列
7 0 0.00 220.00
8 7 100.00 220.00
9 8 100.00 100.00
10 8 20.00 20.00
第二行 的结果也需要是 220
版主大人, 再帮我看看吧
------解决方案--------------------
;WITH f AS
(
SELECT *,1 AS LEVEL FROM tb AS a WHERE NOT EXISTS(SELECT 1 FROM tb WHERE id=a.parentId)
UNION ALL
SELECT a.*,level+1 FROM tb AS a INNER JOIN f AS b ON a.parentId=b.id
)
SELECT *,ISNULL((SELECT SUM(Bail) AS Bail FROM f WHERE level>=a.level),bail) AS SUMBail FROM f AS a
加个=号 搞定