如何使用SQL计算树中值的总和

Jrg*_*gns 7 sql tree

我需要在用户树所获得的每个级别上加分.级别1是用户1级以下用户的用户点数之和.2级是用户等级2级以下的1级点...

计算在非生产服务器上每月发生一次,不用担心性能问题.

SQL会是什么样子的呢?

如果你感到困惑,别担心,我也好!

用户表:

ID    ParentID    Points
1     0           230
2     1           150
3     0           80
4     1           110
5     4           54
6     4           342

Tree:
0
|---\
1    3
| \
2  4---
    \  \
     5  6
Run Code Online (Sandbox Code Playgroud)

输出应该是:

ID    Points    Level1     Level2
1     230       150+110    150+110+54+342
2     150
3     80
4     110       54+342
5     54
6     342
Run Code Online (Sandbox Code Playgroud)

SQL Server语法和函数最好......

Gra*_*rck 1

我想说:创建一个存储过程,可能具有最好的性能。或者,如果您有最大级别数,您可以创建子查询,但它们的性能会很差。

(或者您可以获得 MS SQL Server 2008 并获得新的层次结构函数...;))