pg/sql procedura
jarek - 11-11-2006 00:54
pg/sql procedura
Witam Mam 2 tabelki
1) Katalog : idkatalog nazwa
2) Grupa : idgrupa idkatalog nazwa
Czy może mi ktoś pomóc napisać procedure której wynikiem bedzie :
Katalog (nazwa) Grupa (nazwa) Grupa (nazwa) Grupa (nazwa) Katalog (nazwa) Grupa (nazwa)
Przegladalem archiwum grupy lecz nic podobnego nie znalazlem (nie moglem znalesc), a sam mam problemy z napisaniem tej proc gdyz dopiero zaczynam zabawe z procedurami w postgres-ie
Pozdrawiam
-- Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
Paweł Matejski - 11-11-2006 00:54
jarek wrote: > Witam > Mam 2 tabelki > > 1) Katalog : > idkatalog > nazwa > > 2) Grupa : > idgrupa > idkatalog > nazwa > > Czy może mi ktoś pomóc napisać procedure której wynikiem bedzie : > > Katalog (nazwa) > Grupa (nazwa) > Grupa (nazwa) > Grupa (nazwa) > Katalog (nazwa) > Grupa (nazwa) > > Przegladalem archiwum grupy lecz nic podobnego nie znalazlem > (nie moglem znalesc), a sam mam problemy z napisaniem tej proc gdyz dopiero > zaczynam zabawe z procedurami w postgres-ie
Tu nie ma dobrych krasnoludków. Zacznij od napisania procedury, która zwróci same katalogi (pętelka po selekcie), a potem pójdzie już z górki. Dokumentacja do plpgsql nie jest długa.
-- P.M.
jarek - 11-11-2006 00:54
Nie wiem czy jest zrobione estetycznie i efektywnia ale dziala a zrobiłem to tak:
CREATE TYPE "public"."tproc" AS ("id" INTEGER,"nazwa" TEXT);
CREATE OR REPLACE FUNCTION "public"."tproc" () RETURNS SETOF "public"."tproc" AS $body$ DECLARE temp1 tproc; temp2 tproc; BEGIN for temp1 in SELECT idkatalog, nazwa FROM katalog loop RETURN next temp1; BEGIN for temp2 in SELECT idgrupa, nazwa FROM grupa WHERE idkatalog=temp1.id loop RETURN next temp2; END loop; END; END loop; RETURN; END; $body$ LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;
-- Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
Michał Zaborowski - 11-11-2006 00:54
Może tak:
select idkatalog, NULL as idgrupa, nazwa from katalog union select idkatalog, idgrupa, nazwa from grupa order by idkatalog, idgrupa
-- Pozdrawiam, Michał Zaborowski (TeXXaS)
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
jak to =?ISO-8859-2?Q?zrobi=E6=2E=2E=2E=3F_TSQL_sql_server?==?ISO-8859-2?Q?_?=
Jak =?windows-1250?Q?pobra=E6_szacowan=B9_wielko=9C=E6_zbiory_wy nikowego_w_MS?==?windows-1250?Q?_SQL_2005=3F?=
=?iso-8859-2?Q?=5BMS_SQL=5D_Czy_mo=BFna_wywo=B3a=E6_funkcje_t ylko_raz_dla?==?iso-8859-2?Q?_ca=B3ego_zbioru_=BCr=F3d=B3owego=3F?=
[MSSQL] =?ISO-8859-2?Q?zgodno=B6ci_z_licencjami_Microsoft_?==?ISO-8859-2?Q?SQL_Server?=
=?ISO-8859-2?Q?k=B3opot_z_uruchomieniem_MY_SQL_dla_C?==?ISO-8859-2?Q?MS_i_CRM_na_Fedora_Core_3?=
Oracle PL/SQL Wstawianie =?ISO-8859-2?Q?wynik=F3w_kolekcji_d?==?ISO-8859-2?Q?o_tabeli?=
[MSSQL] ACCESS - SQL =?ISO-8859-2?Q?B=B3ad_w_konwersji_lic?==?ISO-8859-2?Q?zb?=
=?iso-8859-2?Q?=5Bmssql=5D_Zapytania_rekurencyjne__-_czy_sk=B3adnia_sql?==?iso-8859-2?Q?_co=B6_takiego_przewiduje_=3F?=
[Oracle PL/SQL] Cursor i zapis =?ISO-8859-2?Q?rekord=F3w_do_?==?ISO-8859-2?Q?kolejnych_plik=F3w?=
=?iso-8859-2?Q?=5BMySQL=5D_Co_minimalnie_potrzebne_zeby_mie=E 6_klienta_My?==?iso-8859-2?Q?SQL_na_Linuxie=3F?=
zanotowane.pldoc.pisz.plpdf.pisz.plshutter.opx.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 |
|