ďťż
 
pg/sql procedura ďťż
 
pg/sql procedura
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

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.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    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.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • shutter.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

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com