<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Forum PostgreSQL - dynamiczne pobieranie danych z funkcji]]></title>
	<link rel="self" href="http://forum.postgresql.org.pl/extern.php?action=feed&amp;tid=292&amp;type=atom"/>
	<updated>2009-09-11T06:06:08Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.postgresql.org.pl/viewtopic.php?id=292</id>
		<entry>
			<title type="html"><![CDATA[dynamiczne pobieranie danych z funkcji]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=1298#p1298"/>
			<content type="html"><![CDATA[Witam

Mam taką tabelkę tbl_dane:

wydzial  miesiac  wynik
AX           1             12
AX           2             33
BX           1             13
BX           2             44
CX           1             55
CX           2             44

Potrzebuje wynik taki

miesiac   AX     BX       CX
1             12     13       55
2             33     44       44

Robię to za pomocą zapytania

select distinct a.miesiac,m1.wynik as "AX",m2.wynik as "BX",m3.wynik as "CX"
from tbl_dane a,
(select wynik, miesiac from tbl_dane where wydzial='AX') m1,
(select wynik, miesiac from tbl_dane where wydzial='BX') m2,
(select wynik, miesiac from tbl_dane where wydzial='CX') m3,
where
a.miesiac=m1.miesiac and a.miesiac=m2.miesiac and a.miesiac=m3.miesiac

Problem w tym, że wydzial w warunku wpisuje na sztywno  "where wydzial='AX'", a jeżeli dojdzie jakiś nowy wydział w tabeli który nie jest wymieniony w tym zapytaniu to muszę ręcznie go dołożyć, aby się pojawił. 
Moje pytanie brzmi czy da sie zastosować jakąś funkcję z petlą, warunkami  itp. aby zrobić to wszystko dynamicznie. 
Funkcja najpierw by sprawdzała jakie są wydziały, wstawiała je do jakiejś tablicy i potem w zależności od ilości tych wydziałów wykonywała pętlę for pobierając wydziały z zapamietanej tablicy. Nie wiem czy tak się da, ale zawsze warto zapytać.
Czytam trochę o funkcjach, ale jestem za słaby by coś wykombinować. Może ktoś z większą wiedzą naprowadzi mnie na trop.

Pozdrawiam
Adam]]></content>
			<author>
				<name><![CDATA[adamleon]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=873</uri>
			</author>
			<updated>2009-09-11T06:06:08Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=1298#p1298</id>
		</entry>
</feed>
