Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 9 odgovora
  • 8.191 pregleda

Najnovija ↓

SQL upit u Access-u 13.09.2005. u 09:10 · pre 257 meseci #1
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.
Re: SQL upit u Access-u 13.09.2005. u 09:16 · pre 257 meseci #2
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 :)
Potpis
Blog - baze podataka
---------------------
Oracle OCP DBA (9i & 10g)
Oracle Database: SQL Certified Expert
Oracle OCP Developer
Certified MySQL DBA
Re: SQL upit u Access-u 13.09.2005. u 10:17 · pre 257 meseci #3
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?
Re: SQL upit u Access-u 13.09.2005. u 10:26 · pre 257 meseci #4
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
Potpis
Blog - baze podataka
---------------------
Oracle OCP DBA (9i & 10g)
Oracle Database: SQL Certified Expert
Oracle OCP Developer
Certified MySQL DBA
Re: SQL upit u Access-u 13.09.2005. u 11:03 · pre 257 meseci #5
Na ovaj pokusaj poruka je:
Cannot have aggregate function in expression max(Count(Pitanja.Oblast))

Ima li jos ideja?
Re: SQL upit u Access-u 13.09.2005. u 11:27 · pre 257 meseci #6
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
Re: SQL upit u Access-u 13.09.2005. u 12:03 · pre 257 meseci #7
Ovaj upit je dobar ali daje vise redova. Rezultat mora biti samo jedan red i to onaj koji sadrzi najvise oblasti.
Re: SQL upit u Access-u 13.09.2005. u 12:16 · pre 257 meseci
izmenjeno 1 put, poslednji put goranvuc 13.09.2005. u 12:18
  1. goranvuc13.09.2005. u 12:18zapis iz teksta poruke
#8
Pa samo malo koriguj:
Code:

SELECT TOP 1 Count(Oblast) AS Broj, Oblast 
FROM Pitanja GROUP BY Oblast ORDER BY Count(Oblast) DESC
Re: SQL upit u Access-u 23.09.2005. u 20:37 · pre 256 meseci #9
I sta ti na to kazes?
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme