Pobieranie najwyższego rodzica |
Pobieranie najwyższego rodzica |
18.06.2018, 07:38:07
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 270 Pomógł: 184 Dołączył: 7.10.2012 Skąd: Warszawa Ostrzeżenie: (0%) |
Mam sobię taką strukturę danych:
fiddle Potrzebuję przy użyciu metody rekursywnej uzyskać taki wynik gdzie: Kod X-1, X2->X3, X2(Najwyższy rodzic) C-1, C2->C3, C2(Najwyższy rodzic) Y-1, X2, X2(Najwyższy rodzic) Z-1, Z2(Najwyższy rodzic) Próbowałem czymś takim: Kod WITH RECURSIVE roots (issue_key, first_root) AS ( (SELECT aaf.issue_key, ARRAY[aaf.value_string::text] FROM additional_fields aaf WHERE aaf.field_name = 'customfield_12157') UNION ALL SELECT aaf.issue_key, ARRAY_APPEND(r.first_root, aaf.value_string::text) FROM additional_fields aaf INNER JOIN roots r ON TRIM(UPPER(r.issue_key)) = TRIM(UPPER(aaf.issue_key)) ) SELECT roots.issue_key, roots.first_root[1] FROM roots Najwyższy rodzic zawarty jest w polu field_name gdzie value_string = customfield_12157 ale po pierwsze lokalnie mi to działa ale zwraca błędne dane, a tutaj w fiddlu wiesza się i wypluwa błąd. Ma ktoś pomysł jak to poprawnie zrobić? Ten post edytował rad11 18.06.2018, 07:39:10 |
|
|
18.06.2018, 11:04:57
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 421 Pomógł: 310 Dołączył: 18.04.2012 Ostrzeżenie: (0%) |
pokombinuj z tym |
|
|
Wersja Lo-Fi | Aktualny czas: 28.09.2024 - 00:45 |