Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> zapytanie SQL, konieczność tworzenia nowej tabeli ?
beel
post
Post #1





Grupa: Zarejestrowani
Postów: 87
Pomógł: 0
Dołączył: 20.04.2007

Ostrzeżenie: (0%)
-----


Mam taki problem:

Kto opuścił najwięcej zajęć?

Moje tabele to:
absence:
date
student_id

oraz:

student:
student_id
name
sex


Noi polecenie:

Kod
SELECT name, count(*) FROM absence, student
WHERE student.student_id=absence.student_id GROUP BY name


WYswietli nam pogrupowane nieobecnosci wedlug imienia studenta zliczone dla kazdego ucznia, a jak wybrać teraz z tego max ? Nalezy w tym celu stworzyc jakas dodatkwoa tabele ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
dr_bonzo
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

Ostrzeżenie: (0%)
-----


Nie, sortujesz po ilosci nieobecnosci malejaco i wybierasz pierwszy rekord

  1. SELECT name, count(*) AS liczba_nieobecnosci FROM absence, student
  2. WHERE student.student_id=absence.student_id GROUP BY name ORDER BY liczba_nieobecnosci DESC LIMIT 1
Go to the top of the page
+Quote Post
beel
post
Post #3





Grupa: Zarejestrowani
Postów: 87
Pomógł: 0
Dołączył: 20.04.2007

Ostrzeżenie: (0%)
-----


Wszystko okay tylko nie wiem dlaczego LIMIT mu nie pasuje, wywala komunikat:

Incorrect syntax near 'LIMIT'.
Go to the top of the page
+Quote Post
kresh
post
Post #4





Grupa: Zarejestrowani
Postów: 99
Pomógł: 2
Dołączył: 8.11.2005
Skąd: Kraków

Ostrzeżenie: (0%)
-----


A z jaką bazą danych pracujesz?

Bo MSSQL nie obsługuje LIMIT. Można to obejść tak:
  1. SELECT TOP 1 name, count(*) AS liczba_nieobecnosci FROM absence, student
  2. WHERE student.student_id=absence.student_id GROUP BY name ORDER BY liczba_nieobecnosci DESC


Ten post edytował kresh 27.04.2007, 15:09:49
Go to the top of the page
+Quote Post
beel
post
Post #5





Grupa: Zarejestrowani
Postów: 87
Pomógł: 0
Dołączył: 20.04.2007

Ostrzeżenie: (0%)
-----


Tak właśnie z MYSQL'a korzystam, swoją drogą i to i to SQL hehe, a dużo jest takich różnic pomiędzy SQL dla MYSQL a standardowym SQL ? I jeszcze dodatkowe pytanie jak mam zapytanie o to kto uzyskal najwiecej punktow z testu sposrod mezczyzndam sobie tak:

Kod
SELECT TOP 1 name, score, sex, type FROM student, score, event
WHERE student.student_id=score.student_id AND event.event_id=score.event_id
AND type='T' AND sex='M' ORDER BY score DESC


A co jesli jest wiecej jak jedna taka osoba? I jak napisac w jednym zapytaniu aby wyswietlona zostala osoba (mezczyzna, test) ktora ma najwiecej pkt i osoba (mezczyzna, test) ktora ma najmniej pkt?

Ten post edytował beel 27.04.2007, 20:47:55
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 25.12.2025 - 05:24