zapytanie z CONNECT BY w ORACLU
pstachy - 13-03-2006 11:26
zapytanie z CONNECT BY w ORACLU
Witam, Mam taka oto tabele:
CREATE TABLE "KOMORKI" ( "IDKOMORKI" NUMBER NOT NULL, "IDSPOLKI" NUMBER NOT NULL, "PARENTID" NUMBER, "NAZWA" VARCHAR2(80) NOT NULL,
CONSTRAINT "KOMORKI_PK" PRIMARY KEY ("IDKOMORKI") ENABLE,
CONSTRAINT "KOMORKI_FK" FOREIGN KEY ("IDSPOLKI") REFERENCES "SPOLKI" ("IDSPOLKI") ENABLE,
CONSTRAINT "KOMORKI_FK3" FOREIGN KEY ("PARENTID") REFERENCES "KOMORKI" ("IDKOMORKI") ENABLE )
i dane:
id parentid idspolki nazwa 1 NULL 3 IT 2 NULL 3 HR 3 NULL 3 obsluga klienta 4 2 3 rekrutacja .....
Chce wyswietlic strukture organizacyjna komórek danej spólki
SELECT id, nazwa, SYS_CONNECT_BY_PATH(nazwa, ' / ') "struktura drzewa" FROM komorki WHERE idspolki = 3 CONNECT BY PRIOR idkomorki=parentid;
i dostaje:
ID NAZWA STRUKTURA DRZEWA 4 rekrutacja / rekrutacja 2 HR / HR 4 rekrutacja / HR / rekrutacja 3 obsluga klienta / obsluga klienta 1 IT / IT
no i wlasnie... rekrutacja pojawia sie dwa razy, a ja bym chcial aby pojawiala sie tylko raz tak jak w wierszu 3, tam gdzie jest "/ HR / rekrutacja"
prosze o pomoc:)
=?ISO-8859-2?Q?Mase=B3?= - 13-03-2006 11:26
pstachy wrote: > Witam, > Mam taka oto tabele: > > CREATE TABLE "KOMORKI" > ( "IDKOMORKI" NUMBER NOT NULL, > "IDSPOLKI" NUMBER NOT NULL, > "PARENTID" NUMBER, > "NAZWA" VARCHAR2(80) NOT NULL, > > CONSTRAINT "KOMORKI_PK" PRIMARY KEY ("IDKOMORKI") ENABLE, > > CONSTRAINT "KOMORKI_FK" FOREIGN KEY ("IDSPOLKI") > REFERENCES "SPOLKI" ("IDSPOLKI") ENABLE, > > CONSTRAINT "KOMORKI_FK3" FOREIGN KEY ("PARENTID") > REFERENCES "KOMORKI" ("IDKOMORKI") ENABLE > ) > > i dane: > > id parentid idspolki nazwa > 1 NULL 3 IT > 2 NULL 3 HR > 3 NULL 3 obsluga klienta > 4 2 3 rekrutacja > .... > > Chce wyswietlic strukture organizacyjna komórek danej spólki > > SELECT id, nazwa, SYS_CONNECT_BY_PATH(nazwa, ' / ') "struktura drzewa" > FROM komorki > WHERE idspolki = 3 > CONNECT BY PRIOR idkomorki=parentid;
i jeszcze brakuje czegos w rodzaju START WITH...
Pozdro
Maseł
P.S. a co mi tam, wklepalem co nieco w googla i polecam ci ta lekture: http://www.adp-gmbh.ch/ora/sql/connect_by.html
pstachy - 13-03-2006 11:27
Wielkie dzieki:) Konkretnie powinno byc tak:
SELECT idkomorki, nazwa, SYS_CONNECT_BY_PATH(nazwa, ' / ') "struktura drzewa" FROM komorki WHERE idspolki = 3 START WITH parentid IS NULL CONNECT BY PRIOR idkomorki=parentid
pozdrawiam
=?ISO-8859-2?Q?Mase=B3?= - 13-03-2006 11:27
pstachy wrote: > Wielkie dzieki:)
ciesze sie, ze sie na cos przydalem :-)
> Konkretnie powinno byc tak: > > SELECT idkomorki, nazwa, SYS_CONNECT_BY_PATH(nazwa, ' / ') "struktura > drzewa" > FROM komorki > WHERE idspolki = 3 > START WITH parentid IS NULL > CONNECT BY PRIOR idkomorki=parentid
No - teraz to ladnie wyglada...
Pozdro
Maseł
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
Oracle, SQL, PL/SQL. Jak =?ISO-8859-2?Q?napisa=E6_zapytanie=2C?==?ISO-8859-2?Q?_kt=F3re_zwr=F3ci_nazw=EA_atrybutu=2C_kt=F3reg o?==?ISO-8859-2?Q?_warto=B6ci_spe=B3niaj=B1_zadany_warunek?=
=?ISO-8859-2?Q?Narz=EAdzie_do_budowania_zapyta=F1_SQL=2C?==?I SO-8859-2?Q?_PL/PgSQL=2C_PL/SQL=2C_T-SQL?=
[ms sql] =?ISO-8859-2?Q?wy=B6wietlenie_pierwszych_5_rekord?==?ISO-8859-2?Q?=F3w_z_zapytania_=3F_odpowiednik_ROWNUM_w_o?== ?ISO-8859-2?Q?raclu_dla_MS_SQL=27a?=
phpMyAdmin zadaje =?ISO-8859-2?Q?z=B3e_zapytania=2E=2E=2E_Dl?==?ISO-8859-2?Q?aczego=3F?=
[MSSQL2000] Problem z =?ISO-8859-2?Q?tabel=B1/indeksem/zapytanie?==?ISO-8859-2?Q?m_czy_b=B3=B1d_w_bazie_danych=2E=2E=2E?=
[mysql 5.x] jak =?ISO-8859-2?Q?zrealizowa=E6_zapytanie=3F_cz?==?ISO-8859-2?Q?yli_podzapytanie_i_wi=EAcej_ni=BF_jeden_rz=B1? ==?ISO-8859-2?Q?d_wynik=F3w?=
[oracle] zapytanie dynamiczne z =?ISO-8859-2?Q?=22dynamiczn=B1_?==?ISO-8859-2?Q?nazw=B1_tabeli=22?=
[mysql/php] jak =?ISO-8859-2?Q?zliczy=E6_ilo=B6=E6_unikalnyc?==?ISO-8859-2?Q?h_rekord=F3w_w_jednym_zapytaniu=3F?=
[MySQL] Zapytanie z =?ISO-8859-2?Q?dw=F3ch_tabel_na_raz_?==?ISO-8859-2?Q?i_grupowanie_po_wsp=F3lnym_polu=2E_Jak_=3F?=
mecze sie i mecze i nic - zapytanie czesciowe
zanotowane.pldoc.pisz.plpdf.pisz.pllubiatowo.xlx.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|