Mam własny przedstawieniu tabelę z zawartością jak ten:własny stół adresowe z tabeli podrzędnej
Self-referencing parent table
ID ParentID Name
---------------------
1 John
2 1 Mike
3 2 Erin
4 1 Janie
5 Eric
6 5 Peter
Hierarchia drzewa powinny wyglądać następująco
- John
- Mike
- Erin
- Janie
- Mike
- Eric
- Peter
i stół że dziecko zapamiętuje liść tabeli nadrzędnej, który wygląda tak:
ID Sales
3 100
3 100
4 200
4 200
6 300
6 300
6 300
jestem próbuje zrolować sumę z węzła liści do hierarchii, aby powrócił jako.
ID Name Sum
1 John 800
2 Mike 200
3 Erin 200
4 Janie 400
5 Eric 900
6 Peter 900
Wszelkie pomysły, jak to osiągnąć w sql 2008? Z góry dziękuję.
Dzięki za odpowiedź, Dem. Otrzymuję dwa komunikaty o błędach z tym zapytaniem: 'GROUP BY, HAVING lub funkcje agregujące nie są dozwolone w rekurencyjnej części wspólnego wyrażenia tabelarycznego 'flattend'' oraz' Zewnętrzne sprzężenie nie jest dozwolone w rekursywnej części rekurencyjne wyrażenie w tabeli "flattend". '. Jakieś pomysły? – Eric
@Eric - Jestem tak nieobecny, że nawet nie pamiętałem, że tak będzie. Przepisałem tak, że cała agregacja odbywa się poza CTE. – MatBailie
Przepraszam za spóźnioną odpowiedź, musiałem wyjechać wcześnie wczoraj i byłem na spotkaniu przez cały ranek. Zapytanie działa jak urok. Ale miałem problemy ze zrozumieniem CTE i jak działa funkcja COALESCE. Muszę dodać do wyniku wynik w kolumnie ParentID, aby można było odbudować strukturę drzewa w aplikacji, ale wciąż otrzymuję inną liczbę. Czy możesz pomóc trochę więcej? Dzięki jeszcze raz. – Eric