[postgresql] jak sie do takich danych dobrac (proste?)
Grzegorz_na_o2 - 04-05-2006 00:31
[postgresql] jak sie do takich danych dobrac (proste?)
Witam,
Mam napisana prosta funkcje powiedzmy o nazwie f_1(numer) , gdzie 'numer' jest kluczem w jakiejs tablicy - powiedzmy 'klienci'.
Fukcja f_1 zwraca kilka wartosci (dla uproszczenia - niech beda dwie) i wszystko jest fajnie gdy wywolam : SELECT i1,i2 FROM f_1(9999) AS (i1 NUMERIC,i2 AS NUMERIC)
a teraz jak to polaczyc z tabela 'klienci' tak by dla kazdego wiersza z tej tabeli wypisac OBIE odpowiednie wartosci zwracane przez w/w funkcje ???
probowalem SELECT numer,i1,i2 FROM klienci,( SELECT i1,i2 FROM f_1(numer) AS (i1 NUMERIC,i2 AS NUMERIC) ) ale oczywiscie to nie dziala ... :(
=?ISO-8859-2?Q?Pawe=B3_Matejski?= - 04-05-2006 00:31
Grzegorz_na_o2 wrote: > Witam, > > Mam napisana prosta funkcje powiedzmy o nazwie f_1(numer) , gdzie > 'numer' jest kluczem w jakiejs tablicy - powiedzmy 'klienci'. > > Fukcja f_1 zwraca kilka wartosci (dla uproszczenia - niech beda dwie) > i wszystko jest fajnie gdy wywolam : > SELECT i1,i2 FROM f_1(9999) AS (i1 NUMERIC,i2 AS NUMERIC) > > a teraz jak to polaczyc z tabela 'klienci' tak by dla kazdego wiersza z > tej tabeli wypisac OBIE odpowiednie wartosci zwracane przez w/w funkcje ??? > > probowalem > SELECT numer,i1,i2 FROM klienci,( SELECT i1,i2 FROM f_1(numer) AS (i1 > NUMERIC,i2 AS NUMERIC) ) > ale oczywiscie to nie dziala ... :(
A deklaracje funkcji i błąd jaki zwraca to zapytanie pominąłeś, żeby nas przetestować, czy w jakimś bardziej tajemniczym celu?
-- P.M.
Grzegorz_na_o2 - 04-05-2006 00:31
Paweł Matejski wrote: > A deklaracje funkcji i błąd jaki zwraca to zapytanie pominąłeś, żeby nas > przetestować, czy w jakimś bardziej tajemniczym celu? > tego to juz sie mozna domyslic po wywolaniu ;) ale prosze bardzo : funkcja: CREATE OR REPLACE FUNCTION f_1(INTEGER) RETURNS RECORD a blad to oczywiscie : ERROR: subquery must return only one column
Grzegorz_na_o2 - 05-05-2006 00:05
Grzegorz_na_o2 wrote: > Paweł Matejski wrote: >> A deklaracje funkcji i błąd jaki zwraca to zapytanie pominąłeś, żeby nas >> przetestować, czy w jakimś bardziej tajemniczym celu? >> > tego to juz sie mozna domyslic po wywolaniu ;) > ale prosze bardzo : > funkcja: > CREATE OR REPLACE FUNCTION f_1(INTEGER) RETURNS RECORD > a blad to oczywiscie : > ERROR: subquery must return only one column
przepraszam - pisalem z pamieci - zapytanie ma wygladac tak: SELECT numer,i.i1,i.i2 FROM klienci,( SELECT i1,i2 FROM f_1(numer) AS (i1 NUMERIC,i2 NUMERIC)) AS i ;
w tym wypadku blad to oczywiscie : ERROR: subquery in FROM may not refer to other relations of same query level
probowalem wczesniej zrobic tak: SELECT numer,( SELECT i1,i2 FROM f_1(numer) AS (i1 NUMERIC,i2 NUMERIC)) FROM klienci
i wtedy blad to : ERROR: subquery must return only one column
Doraznie poradzilem sobie tworzac funkcje zwracajaca SETOF - zlozony typ danych w ktorym mam wszystkie interesujace mnie pola dla kazdego wiersza z tabeli 'klienci' i wtedy po prostu robie select na tej nowej funkcji : SELECT * from f_nowa_1();
ale czy naprawde nie mozna inaczej ?
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
[PostgreSQL] - jak =?ISO-8859-2?Q?zabezpieczy=E6_interesy_tw?==?ISO-8859-2?Q?=F3rcy_systemu_=3F=3F=3F?=
postgresql - int/int
[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?=
postgresql Select count(*) czy raczej Select count(ID)
[PostgreSQL] jak =?ISO-8859-2?Q?pobra=E6_warto=B6=E6_zwracan?==?ISO-8859-2?Q?=B1_przez_funkcj=EA=3F?=
[postgresql] INSERT OR UPDATE - jak =?ISO-8859-2?Q?b=EAdzie_na?==?ISO-8859-2?Q?jlepiej=3F?=
[postgresql] kilka =?ISO-8859-2?Q?rekord=F3w_subquery_jako_?==?ISO-8859-2?Q?string?=
[PostgreSQL] Jak =?ISO-8859-2?Q?po=B3=B1czy=E6_funkcje_z_w?==?ISO-8859-2?Q?idokiem?=
Postgres - replikcja master-master
Dopasowanie do "najlepszego" dopasowania :) [ PostgreSQL]
zanotowane.pldoc.pisz.plpdf.pisz.plwawa19wwa91.pev.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 |
|