Tengo una tabla hace referencia a sí con el contenido de la siguiente manera:propia tabla de referencia con la tabla secundaria
Self-referencing parent table
ID ParentID Name
---------------------
1 John
2 1 Mike
3 2 Erin
4 1 Janie
5 Eric
6 5 Peter
La jerarquía de árbol debería tener este aspecto
- John
- Mike
- Erin
- Janie
- Mike
- Eric
- Peter
Y una tabla secundaria que almacena la hoja de tabla primaria que tiene este aspecto:
ID Sales
3 100
3 100
4 200
4 200
6 300
6 300
6 300
estoy tratando de acumular la suma desde el nodo hoja hasta la jerarquía para que vuelva como.
ID Name Sum
1 John 800
2 Mike 200
3 Erin 200
4 Janie 400
5 Eric 900
6 Peter 900
¿Alguna idea de cómo lograr esto en sql 2008? Gracias por adelantado.
Gracias por la respuesta, dem. Recibo dos mensajes de error con esa consulta: 'GROUP BY, HAVING o funciones agregadas no están permitidas en la parte recursiva de una expresión de tabla común recursiva 'flattend'. Y' Outer join no está permitido en la parte recursiva de una expresión de tabla común recursiva 'flattend'. '. ¿Algunas ideas? – Eric
@Eric - Estoy tan fuera de práctica que ni siquiera recuerdo que ese sería el caso. He vuelto a codificar de modo que toda la agregación se realice fuera del CTE. – MatBailie
disculpa por la respuesta tardía, tuve que irme temprano ayer y estuve en una reunión toda la mañana. La consulta funciona como encanto. Pero tuve problemas para entender el CTE y cómo funciona la función COALESCE. Necesito agregar la columna ParentID al resultado para poder reconstruir la estructura de árbol en la aplicación, pero sigo contando de manera diferente. ¿Puedes ayudar un poco más? Gracias de nuevo. – Eric