【发布时间】:2014-04-27 19:13:11
【问题描述】:
我有下表:
parent_id child_id child_class
1 2 1
1 3 1
1 4 2
2 5 2
2 6 2
Parent_id 表示文件夹 ID。子 ID 代表子文件夹(child_class=1)或子文件(child_class=2)。
我想通过以下方式仅获取所有文件 (child_class=2) 的汇总计数器(自下而上)。例如,如果 C 是包含 5 个文件的叶文件夹(无子文件夹),而 B 是 C 的父文件夹,其中包含 4 个文件,则 C 上的计数器应为 5,B 上的计数器应为 9(=5从 C 和 B) 中的 4 个文件开始,以此类推,自下而上考虑同级文件夹等。
在上面的示例中,我希望得到以下结果(注意 3 是一个子文件夹,其中没有文件):
parent_id FilesCounter
3 0
2 2
1 3
出于性能考虑,我更喜欢 SQL 查询,但函数也是可以的。
我尝试将分层查询与汇总 (sql 2008 r2) 混合使用,但到目前为止没有成功。
请指教。
【问题讨论】:
标签: tsql hierarchical rollup