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.