Ho una tabella di dati che assomiglia a questo:Come riassumere in modo ricorsivo gerarchia padre/figlio
UnitID UnitParentID ScoreCount ScoreSum Level
7112 72 292 1
7120 7112 72 308 2
7139 7112 24 82 2
7150 7112 166 586 2
23682 7112 104 414 2
7100 7112 272 1016 2
23691 7112 94 300 2
23696 7112 24 80 2
23700 23696 184 594 3
23694 23691 24 64 3
23689 7120 88 390 3
7148 23696 112 420 3
7126 7120 32 132 3
7094 7120 96 332 3
7098 7094 64 240 4
23687 7094 16 62 4
Quello che sto cercando di fare è aggiungere ricorsivamente dalla gerarchia più basso fino al più alto in modo che i numeri di seguito arrotolare nel loro genitore. Quindi un genitore aggiungerebbe ai suoi valori esistenti qualsiasi bambino, fino all'albero in cima.
In questo esempio, le ultime due righe rimarrebbero invariate perché non hanno figli. L'ID di unità 7094 avrebbe un punteggio di 96 (base) + 64 + 16 (2 bambini) per un nuovo totale di 176 (e la stessa logica per il punteggio). Gli altri al livello 3 rimarrebbero invariati perché non hanno figli. Credo di aver bisogno di iniziare dal basso in modo che gli strati sopra abbiano i valori corretti per ogni bambino.
Se qualcuno potesse indicarmi una buona fonte in cui potrei imparare come ottenerlo, sarei molto grato.
Si potrebbe utilizzare una CTE ricorsiva –
Messaggio di un'uscita esempio – Matt
La prima risposta alla domanda ho segnalato come duplicato dovrebbe funzionare per voi. Non invierò la soluzione come risposta perché l'ho adattata dal post collegato, ma in ogni caso: adattata alla tua tabella e ai dati come soluzione di lavoro: http://www.sqlfiddle.com/#!6/71409/1 – jpw