<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Forum PostgreSQL - Problem z funkcją i kursorami]]></title>
	<link rel="self" href="http://forum.postgresql.org.pl/extern.php?action=feed&amp;tid=2205&amp;type=atom"/>
	<updated>2014-08-18T17:37:23Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.postgresql.org.pl/viewtopic.php?id=2205</id>
		<entry>
			<title type="html"><![CDATA[Odp: Problem z funkcją i kursorami]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=5316#p5316"/>
			<content type="html"><![CDATA[Dziękuję za odpowiedź. Mniej więcej o to chodziło. W pierwszej kolumnie  (nazwisko1) muszą byc nazwiska posortowane od pracującego najdłużej do pracującego najkrócej natomiast w drugiej (nazwisko2) występuje nazwisko, którego data zatrudnienia jest najbliższa dacie zatrudnienia nazwiska1. Nie wiem czy zrozumiale to opisałem :/
Czyli w kolumnie nazwisko2 dane nazwisko może się powtarzać. W kolumnie nazwisko1 nie. Z góry dziekuję za pomoc bo nie dam rady tego opanować.]]></content>
			<author>
				<name><![CDATA[mrktos]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=2019</uri>
			</author>
			<updated>2014-08-18T17:37:23Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=5316#p5316</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: Problem z funkcją i kursorami]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=5314#p5314"/>
			<content type="html"><![CDATA[Nie wiem czy dobrze cię zrozumiałem ale zerknij na poniższy przykład:
create table pracownicy (id serial primary key, nazwisko varchar (50) not null,data_zatrudnienia date not null);
create type nazwisko as (nazwisko1 varchar(50), nazwisko2 varchar(50));
insert into pracownicy (nazwisko,data_zatrudnienia) values
('a','2013-01-01'),
('b','2013-02-01'),
('c','2013-03-01'),
('d','2013-04-01'),
('e','2013-05-01');

CREATE FUNCTION wyswietl() RETURNS SETOF nazwisko AS
$BODY$declare r nazwisko;
begin
   for r in select nazwisko as nazwisko1 , lead (nazwisko) over (order by data_zatrudnienia) as nazwisko2 from pracownicy loop
      return next r;
   end loop;
   return;
end;$BODY$
LANGUAGE plpgsql STABLE;

select * from wyswietl();]]></content>
			<author>
				<name><![CDATA[c_michal]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=627</uri>
			</author>
			<updated>2014-08-18T07:49:38Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=5314#p5314</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Problem z funkcją i kursorami]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=5312#p5312"/>
			<content type="html"><![CDATA[Witam. Posiadam tabelę z następującymi kolumnami:
- nazwisko
- data_zatrudnienia.
Muszę napisać funkcję która zwraca rekordy typu nazwiska (wcześniej go zdefiniowałem
- type nazwiska {nazwisko1 varchar, nazwisko2 varchar})  
zawierające nazwiska dla których różnica w datach zatrudnienia jest najmniejsza. W funkcji muszę użyć kursorów.
Pomoże ktoś bo nie mam zielonego pojęcia jak to zrobić...]]></content>
			<author>
				<name><![CDATA[mrktos]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=2019</uri>
			</author>
			<updated>2014-08-15T18:06:15Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=5312#p5312</id>
		</entry>
</feed>
