我看到了很多关于如何递归查询自引用表的问题/答案,但是我很难将我找到的答案应用于每个父级、祖父级等的聚合,而不管该项在层次结构中位于何处。
MyTable
-----------
Id
Amount
ParentId
数据:
Id Amount Parent Id
1 100 NULL
2 50 1
3 50 1
4 25 2
5 10 4
如果我运行这个查询但不进行过滤,并且对金额进行求和,结果将是:
Id SumAmount
1 235
2 85
3 50
4 35
5 10
换句话说,我想查看MyTable中每个项目及其所有子项的总金额。
TotalAmount + MyTable.Amount
是错误的,因为它在SUM(TotalAmount)
下面被求和了,但这是一个很好的递归方法。另外,应该只有MyTable.Amount
。顺便说一下,加1。 - Steve