Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: zapytanie SQL, konieczność tworzenia nowej tabeli ?
Forum PHP.pl > Forum > Przedszkole
beel
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 ?
dr_bonzo
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
beel
Wszystko okay tylko nie wiem dlaczego LIMIT mu nie pasuje, wywala komunikat:

Incorrect syntax near 'LIMIT'.
kresh
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
beel
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?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.