maczu [ Konsul ]
trudne!!! zapytanie w mySQL - pomocy!!
tabele:
KLASY
+---+-----------+-----------+
| id |. . . rok . .| semestr .|
+--+------------+-----------+
OCENY
+--+----------+----+------------+-------+
| id | semestr |rok | przedmiot | ocena|
+--+----------+----+------------+-------+
pytnie:
1 - srednie oceny klas
2 - srednie oceny klas w rozbiciu na lata.
Eliash [ Generaďż˝ ]
jakie jest powiązanie między tymi tabelami ?
tzn. skąd wiesz która ocena została uzyskana w danej klasie ?
maczu [ Konsul ]
sorka, poprawka,zapomnialem jednej krotki :))
jeszcze raz:
KLASY
+---+-----------+-----------+------+
| id |. . . rok . .| semestr .| klasa |
+--+------------+-----------+------+
OCENY
+--+----------+----+------------+-------+
| id | semestr |rok | przedmiot | ocena|
+--+----------+----+------------+-------+
pytnie:
1 - srednie oceny klas
2 - srednie oceny klas w rozbiciu na lata.
Eliash [ Generaďż˝ ]
maczu --> Chyba w tabeli ocena powinna być klasa ? :) (albo id_klasa)
Przyzwyczajaj się nadawac takie nazwy polom id ktore beda mowily jakiej tabeli jest
to id
maczu [ Konsul ]
tabele musza byc w postaci Boyce'a - Codd'a.
id jest ucznia.
tak ma byc.
jakby bylo tak jak mowisz to by nie bylo trudne, nie mam zrobiic tabeli ktora zawiera srednia wszystkich klas tylko zapytanie. rozumiesz o co mi chodzi? ;)
pozdr.
Eliash [ Generaďż˝ ]
zobacz coś takiego, nie wiem czy pod MySQl bedzie dzialac poprawnie
(jestem przyzwyczajony do MSSQl-a)
Jesli w "oceny" bedzie dodatkowe pole id_klasa:
z rozbiciem na lata:
select kl.klasa, avg(oc.ocena), oc.rok
from oceny oc left join klasy kl on kl.id = oc.id_klasa
group by kl.klasa, oc.rok
bez rozbicia
select kl.klasa, avg(oc.ocena)
from oceny oc left join klasy kl on kl.id = oc.id_klasa
group by kl.klasa
maczu [ Konsul ]
na przyklad:
select klasy, avg(oceny.oceny) as sredniaklasy where oceny.ocena from klasa =
Eliash [ Generaďż˝ ]
aaa pospieszyłem sie, muszę kwilke pomysleć ... :)
maczu [ Konsul ]
klasa jest np. 1a, w danym roku jest tylko jedna klasa, wiec chyba nie trzeba (raczej na bank) dawac dodatkowo id_klasy.
a to moje zapytanie pewnie jest zle, wiec sie nie sugeruj :)
Eliash [ Generaďż˝ ]
select kl.klasa, avg(oc.ocena)
from oceny oc, klasy kl
where oc.id = kl.id <--- Laczenie po uczniu id powinny byc takie same
group by kl.klasa
select kl.klasa, oc.rok, avg(oc.ocena)
from oceny oc, klasy kl
where oc.id = kl.id
group by kl.klasa, oc.rok
I jak teraz ?
maczu [ Konsul ]
dzieki, wydaje sie na dobre :) wieczorem ci odpowiem czy bylo dobrze :)) dzieki i pozdrawiam
jakby ktos mial inne propozycje to prosze pisac :))
norbi071 [ Legionista ]
hehehe dzieki Ci kles za odpwiedz bo to tez dla mnie ;>>>>> razem z Siwym "studiujemy " hahahahha
;-))))))) pozdrawiam