我在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)
将所有临时表合并到永久表中
然而,通过阅读论坛,我理解:
我的问题是,如何在不使用所有这些不良做法的情况下解决问题?