Temat: dynamiczne pobieranie danych z funkcji
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