[ codeb.s @ 06.03.2011. 13:14 ] @
Pozdrav..

Trebam kreirati sql za sledeći slučaj....
Imam 3 tabele Dokumenti gdje izmjeđu ostalog imam polja organizacija_id, vrsta_dokumenta_id. datum_dokumenta
Sledeća tabela je organizacije sa naravno id i naziv poljem i treća tabela je vrsta_dokumenta sa identičim poljima (id,naziv)
E sad glavna tabela (Dokumenti) je preko id-ova povezana sa druge dve tabele...
Treba mi SQL tako da mi rezultat bude u redovima naziv organizacije, kolone naziv iz tabele vrste dokumenata, a da mi se
saberu svi dokumenti koji zadovoljavaju ova dva uslova... u određenom periodu..
ne znam da li sam dobro objesni pa ću prikazati rezultat koji trebam dobiti:

Organizacije VrstaDokumentaNaziv1 VrstaDokumentaNaziv2 ..... VrstaDokumentaNaziv-n
-----------
Organizacija1 3 5 11
Organizacija2 0 7 4
.
.
.
Organizacija-n n n n
[ namesnik @ 07.03.2011. 18:27 ] @
Ako je broj tipova dokumenata poznat onda mozes da uradis join onoliko puta koliko ti kolona treba.
Code:
select o.name as organizacije, count(distinct vd1.vrsta_dokumenta_id) as <naziv_vrste_dokumenta1>, count(distinct vd2.vrsta_dokumenta_id) as <naziv_vrste_dokumenta2> , ...
    from dokument as d
    left join vrsta_dokumenta as vd1 on vd1.vrsta_dokumenta_id = <id_tipa za prvu kolonu>
    left join vrsta_dokumenta as vd2 on vd2.vrsta_dokumenta_id = <id_tipa za drugu kolonu>
    ...
    inner join organizacija as o on o.organizacija_id = d.organizacija_id
    where d.datum_dokumenta > 2011-02-28 15:37:13
    group by d.organizacija_id