日期:2014-05-16  浏览次数:20387 次

------------------------F 姐 再帮我看看这个吧。---------------------------
连接此贴 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


加个=号 搞定