我在 SQL Server 中有以下数据集
层次结构表:
Report | Immediate Parent
Child1 Parent1
Child2 Parent1
Child3 Parent2
Parent1 Grandparent1
Parent2 Grandparent1
数据表(仅适用于基础级别的儿童):
Report | Sales
Child1 1000
Child2 1000
Child3 1000
由此我需要创建一个数据集,其中包含
Report | Sales
Parent1 2000
Parent2 1000
Grandparent1 3000
我不知道会有多少层次,可能是伟大的*10祖父母。我对这个问题的解决方案是使用递归和动态 SQL 不断为每个层次结构级别创建临时表,即
为父级创建临时表,将数据表连接到层次结构表并求和(销售额)
为祖父母创建临时表,将父临时表连接到层次结构表并求和(销售额)
冲洗并重复,直到没有行受到影响 (@@rowcount)
将所有临时表合并到永久表中
然而,通过阅读论坛,我了解到:
- 应该避免递归,
- 应避免动态 SQL,
- 应避免@@Rowcount
我的问题是,如何在不使用所有这些不良做法的情况下解决问题?
None
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)