[ nkolar @ 13.09.2005. 08:10 ] @
Baza je u Access-u.

Tabela pitanja izgleda ovako:
Pitanje_ID number
Oblast text
TipPitanja number
Pitanje text memo

Tabela OblastiPitanja izgleda ovako:
Oblast text
Opis text


U tabeli Pitanja jedna od kolona je i oblast pitanja (Pitanja.Oblast). Trebalo bi kao rezultat upita dobiti red koji sadrzi najvise zastupljenih oblasti u tabeli Pitanja i naziv te oblasti.

SELECT Count(Pitanja.Oblast) , Pitanja.Oblast
FROM OblastiPitanja INNER JOIN Pitanja ON OblastiPitanja.Oblast = Pitanja.Oblast
GROUP BY Pitanja.Oblast
HAVING (((Count(Pitanja.Oblast))>50))
ORDER BY Count(Pitanja.Oblast);

Gore navedeni selekt vraca 2 reda ali to nije ono sto nam treba. Treba nam samo jedan red koji sadrzi MAX(COUNT) oblasti i naziv te oblasti.
[ Dejan Topalovic @ 13.09.2005. 08:16 ] @
U klauzuli HAVING mozda mozes pokusati ovako:
Code:
HAVING Count(Pitanja.Oblast) = MAX(COUNT(Pitanja.Oblast))

Ako ocekujes samo jedan red kao rezultat, onda ti ORDER BY ne treba u upitu, a osim toga opterecuje izvrsavanje upita zbog sortiranja...

Nisam testirao, jer ne radim sa Accessom :)
[ nkolar @ 13.09.2005. 09:17 ] @
Pokusao sam ovo sto predlazes medjutim poruka Accessa je 'Cannot have aggregate functions in expression Count(Pitanja.Oblast)=MAX(COUNT(Pitanja.Oblast)).
Ima li kakvih drugih ideja?
[ Dejan Topalovic @ 13.09.2005. 09:26 ] @
Ok, a ovo:
Code:
SELECT max(Count(Pitanja.Oblast)) , Pitanja.Oblast
FROM OblastiPitanja INNER JOIN Pitanja ON OblastiPitanja.Oblast = Pitanja.Oblast
GROUP BY Pitanja.Oblast
[ nkolar @ 13.09.2005. 10:03 ] @
Na ovaj pokusaj poruka je:
Cannot have aggregate function in expression max(Count(Pitanja.Oblast))

Ima li jos ideja?
[ goranvuc @ 13.09.2005. 10:27 ] @
Izvini, ali sto uopste pravis JOIN na tabelu OblastiPitanja kada Oblast izvlacis iz tabele Pitanja?
Evo ti moj predlog:
Code:

SELECT MAX(Broj), Oblast FROM 
(SELECT Count(Oblast) AS Broj, Oblast 
FROM Pitanja GROUP BY Oblast) AS BrojPojava 
GROUP BY Oblast
[ nkolar @ 13.09.2005. 11:03 ] @
Ovaj upit je dobar ali daje vise redova. Rezultat mora biti samo jedan red i to onaj koji sadrzi najvise oblasti.
[ goranvuc @ 13.09.2005. 11:16 ] @
Pa samo malo koriguj:
Code:

SELECT TOP 1 Count(Oblast) AS Broj, Oblast 
FROM Pitanja GROUP BY Oblast ORDER BY Count(Oblast) DESC


[Ovu poruku je menjao goranvuc dana 13.09.2005. u 12:18 GMT+1]
[ goranvuc @ 23.09.2005. 19:37 ] @
I sta ti na to kazes?
[ nkolarsu @ 26.09.2005. 07:43 ] @
To je ono sto nam treba. Hvala ti lepo.
Pozdrav.