<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Forum PostgreSQL - Zwrot ostatniego wyniku z funkcji]]></title>
	<link rel="self" href="http://forum.postgresql.org.pl/extern.php?action=feed&amp;tid=2299&amp;type=atom"/>
	<updated>2015-08-20T10:39:29Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.postgresql.org.pl/viewtopic.php?id=2299</id>
		<entry>
			<title type="html"><![CDATA[Odp: Zwrot ostatniego wyniku z funkcji]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=5536#p5536"/>
			<content type="html"><![CDATA[Jasne że się da, poczytaj o "window functions" link [url]http://www.postgresql.org/docs/9.2/static/functions-window.html[/url]

Dokładnie - funkcja last_value
W sieci masz mnóstwo przykładów, musisz tylko określić co to dla Ciebie znaczy ostatni bo to co teraz masz napisane w funkcji to kolejność zapisania rekordu na dysku ale nie jest to do końca prawda]]></content>
			<author>
				<name><![CDATA[c_michal]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=627</uri>
			</author>
			<updated>2015-08-20T10:39:29Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=5536#p5536</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Zwrot ostatniego wyniku z funkcji]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=5533#p5533"/>
			<content type="html"><![CDATA[Mam taką funkcję mniej więcej.

CREATE OR REPLACE FUNCTION fun1(
    wart1 integer,
    wart2 integer)
  RETURNS integer AS
$BODY$

DECLARE 

	lista1 record; 
	wynik integer;


BEGIN 

	for lista1 in (select wyn1,wyn2,wyn3,wyn4 from tabela where pole = wart1)
				LOOP 

					IF wyn1 <> 0 THEN 
						raise notice '% wyn2 || % wart2 \\ %wyn4',lista1.wyn2, wart2, lista1.wyn3; 

						perform fun1(wyn1, wart2); 

					END IF; 

				END LOOP; 

			
return wynik;


END; 

$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100; 


Funkcja działa bez problemu i raise notice zwraca pokazuje wartości. Problem mam ze zwrotem wyniku. W skrócie raise notice pokazuje mi dwie linijki z wykonania. Czy jest jakaś możliwość zwrócenia jako wyniku tego ostatniego wpisu. Mianowicie chodzi mi o zwrócenie ostatniej (niepustej) wartości, która tutaj jest pokazana jako wyn1. Ja u siebie mam przykład, że raise notice pokazuje mi dwa wiersze. Równie dobrze może ich być dużo więcej. Stąd moje pytanie czy się da zwrócić ostatni wynik?

Pozdrawiam]]></content>
			<author>
				<name><![CDATA[hifek]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=1253</uri>
			</author>
			<updated>2015-08-18T22:25:03Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=5533#p5533</id>
		</entry>
</feed>
