鑑於自引用表對樹數據進行分組和彙總的最佳方式是什麼?
Item
-------------
Id (pk)
ParentId (fk)
相關聯的值
ItemValue
-------------
ItemId (fk)
Amount
和一些示例數據
Item ItemValues
Id ParentId ItemId Amount
-------------------- ----------------------
1 null 1 10
2 1 3 40
3 1 3 20
4 2 4 10
5 2 5 30
6 null
7 6
8 7
我需要一個存儲過程採取Item.Id
並返回直接的關聯表所有ItemValue.Amounts
的孩子,爲他們,他們的孩子和他們的孩子一路下降EE。
例如,如果1
傳遞中,樹是2, 3, 4, 5
直接孩子2, 3
輸出將
ItemId Amount
------------------
2 40 (values from ItemIds 4 & 5)
3 60 (values from ItemId 3)
什麼樣的方法應該適用於使實現這種行爲?
我正在考慮使用CTE,但我想知道是否有更好/更快的方法。
SQL Server 2005,我也會重寫 – Bob 2009-10-23 02:02:06