• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Postgres rekurencyjne zapytanie

0 głosów
47 wizyt
pytanie zadane 3 czerwca w SQL, bazy danych przez Gerlach Nowicjusz (220 p.)

Witam, mam do zrobienia zapytanie rekurencyjne do tego zadania:

"2. Za pomocą hierarchicznego (rekurencyjnego) zapytania (https://www.postgresql.org/docs/9.5/querieswith.html) pobierz dane wszystkich pracowników posortowane zgodnie z zajmowanym przez nich miejscem w hierarchii organizacyjnej firmy. Zacznij od stanowiska najwyższego szczebla tj. dyrektora (Karolina Karolińska, bez przypisanej wartości w kolumnie przełozony_id). Do wyników dołącz kolumnę szczebli_do_najwyzszego_stanowiska (dyrektorowi przypisz wartość równą 0, patrz tabela 2). Następnie skonstruuj drugie zapytanie, które pobierze w pierwszym wierszu wyników jakiegoś pracownika najniższego szczebla np. Adama Adamskiego, drugi wiersz będzie zawierał jego przełożonego itd., aż do ostatniego wiersza zawierającego dane dyrektora. Do wyników dołącz kolumnę szczebli_od_najnizszego_stanowiska."

Podpowiedź z instrukcji:

Mój kod:

WITH RECURSIVE hierarchia_pracownikow AS (
 SELECT *, 0 AS szczebli_do_najwyzszego_stanowiska
 FROM pracownik
 WHERE przelozony_id IS NULL 
 UNION ALL
 SELECT p.*, (szczebli_do_najwyzszego_stanowiska + 1) as szczebli_do_najwyzszego_stanowiska
 FROM pracownik AS p
 JOIN hierarchia_pracownikow AS hp ON hp.przelozony_id=p.przelozony_id )
  SELECT * FROM hierarchia_pracownikow;

I sprawa wygląda tak, że obojętnie w jaki sposób dam warunek złączenia, to zawsze mam tylko taki wynik:

Czy mógłby ktoś podpowiedzieć co jest źle w warunku złączenia? Godzinę się z tym męczę.

 

 

 

1 odpowiedź

0 głosów
odpowiedź 14 czerwca przez bwaluk Mądrala (5,400 p.)
 JOIN hierarchia_pracownikow AS hp ON p.przelozony_id=hp.pracownik_id

 

Podobne pytania

+1 głos
1 odpowiedź 1,223 wizyt
pytanie zadane 24 czerwca 2018 w SQL, bazy danych przez Riddick Bywalec (2,530 p.)
0 głosów
2 odpowiedzi 54 wizyt
0 głosów
0 odpowiedzi 60 wizyt
pytanie zadane 15 grudnia 2020 w Rozwój zawodowy, nauka, szkoła, praca przez dellek1 Nowicjusz (120 p.)
Porady nie od parady
Pytania na temat serwisu SPOJ należy zadawać z odpowiednią kategorią dotyczącą tej strony.SPOJ

84,130 zapytań

132,898 odpowiedzi

293,918 komentarzy

55,554 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...