Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> zapytanie SQL, konieczność tworzenia nowej tabeli ?
beel
post 26.04.2007, 20:32:00
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
dr_bonzo
post 26.04.2007, 22:07:28
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


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
beel
post 27.04.2007, 14:58:51
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 27.04.2007, 15:09:09
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


--------------------
Programuj pod kątem interfejsu, nie implementacji
Gang of Four

michalbarys.pl
Go to the top of the page
+Quote Post
beel
post 27.04.2007, 20:23:55
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
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 12.06.2025 - 17:35