Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> zliczanie wielu wartosci
Kinool
post
Post #1





Grupa: Zarejestrowani
Postów: 560
Pomógł: 0
Dołączył: 15.07.2003
Skąd: Kwidzyn

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


witam czy jest możliwe zarobić w jednym zapytaniu czegoś takiego:

tabela uczen:
uczen_id, user_name, klasa_id

tabela sprawdziany:
sprawdzian_id, uczen_id, przedmiot_id, ocena, czas

tak mniej więcej wyglądają tabele z jednego przedmiotu może być kilka sprawdzianów wiec jeden uczeń może dostac kilka ocen, chciał bym zliczyć ile dany uczen ma 5, 4, 3 itd i z jakich przedmiotów i właśnie nie wiem czy można to zrobić to w jednym zapytaniu czy trzeba rozbić na kilka zapytan dla kazdej oceny odzielnie?

acha i jeszcze jedno (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) czy szybsze jest zlaczanie przez JOIN
  1. SELECT uczen.*
  2. FROM uczen LEFT JOIN sprawdziany ON (sprawdziany.uczen_id=uczen.uczen_id)
czy
  1. SELECT uczen.*
  2. FROM uczen, sprawdziany WHERE sprawdziany.uczen_id=uczen.uczen_id


(pomijajac co sie pobiera, jedynie samo laczenie)
czy nie ma to zadnego znaczenia na wydajnosci?

Ten post edytował Kinool 22.12.2004, 14:46:02
Go to the top of the page
+Quote Post
popbart
post
Post #2





Grupa: Zarejestrowani
Postów: 255
Pomógł: 0
Dołączył: 22.04.2004
Skąd: Żoliborz

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


Cytat
chciał bym zliczyć ile dany uczen ma 5, 4, 3 itd i z jakich przedmiotów

  1. SELECT uczen_id,przedmiot_id,ocena,count(sprawdziany.sprawdzian_id) AS ile
  2. FROM sprawdziany GROUP BY przedmiot_id,ocena
  3. ORDER BY uczen_id
Go to the top of the page
+Quote Post
Kinool
post
Post #3





Grupa: Zarejestrowani
Postów: 560
Pomógł: 0
Dołączył: 15.07.2003
Skąd: Kwidzyn

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


nie o to mi chodzi

che wiedziec ile ma 5, ile ma 4, ile ma 3 nie ile jest wszystkich ocen razem tylko poszczegolnych ocen

np. ze oceny 5 jest 8 oceny 3 jest 12 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
DeyV
post
Post #4





Grupa: Zarząd
Postów: 2 277
Pomógł: 6
Dołączył: 27.12.2002
Skąd: Wołów/Wrocław




ad 2.
FROM uczen, sprawdziany jest równoznaczne z INNER JOIN.
Ja jednak preferuję formę JOIN, z uwagi na to, że dzięki niej zapytania są znacznie bardziej czytelne.

ad 1.
Ja nadal nie rozumiem, co chcesz osiągnąć.
Podaj może przykładowe dane oraz wyniki, jakie chciałbyś otrzymać.
Go to the top of the page
+Quote Post
Kinool
post
Post #5





Grupa: Zarejestrowani
Postów: 560
Pomógł: 0
Dołączył: 15.07.2003
Skąd: Kwidzyn

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


powiedzmy ze w tabeli sprawdziany sa dane dotyczace sprawdzianu, jego czas numer sprawdzianu (id) przedmiotu z jakiego byl sprawdzian (id), uczen (jego id) oraz ocena jaka dostal uczen za sprawdzian

powiedzmy ze sprawdziany byly z matmy, polaka, biologi i fizyki
i ktos dostal nastepujace oceny 4, 5, 4, 3

i tera chcialbym wiedziec ile bylo ocen dobrych, bardzo dobrych, dostatecznych itp

czli zapytanie powinno dac w wyniku cos takiego

bd 1 (jedna piatka)
db 2 (dwie dobre)
dst 1 (jedna dostateczna)

moglbym to zobic poprzez
  1. SELECT COUNT(*)
  2. FROM sprawdziany WHERE ocena=5
zrobic relace z tabela uczi i wiedziec np ile ktos mial 5 powiedzmy z matmy czy w jakims tam okresie ale dla kazdej oceny musial bym robc takie zapytanie i chodzi mi o to czy da sie to zrobic w jednym
Go to the top of the page
+Quote Post
popbart
post
Post #6





Grupa: Zarejestrowani
Postów: 255
Pomógł: 0
Dołączył: 22.04.2004
Skąd: Żoliborz

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


Cytat
che wiedziec ile ma 5, ile ma 4, ile ma 3 nie ile jest wszystkich ocen razem tylko poszczegolnych ocen


Dlatego celowo zgrupowalem po przedmiocie i ocenie,przetestuj moze te zapytanie a nie macisz tylko (IMG:http://forum.php.pl/style_emoticons/default/angrysmiley.gif)
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.08.2025 - 20:54