Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Problem z zadaniami za zajęcia, proszę o pomoc
BETTERq
post 6.02.2018, 11:35:12
Post #1





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 6.02.2018

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


Witam, piszę do was bo nie mogę znaleźć nic na internecie i w sumie się już praktycznie poddaje. Mam kilka podobno prostych kwerend do napisania, ale jakoś zupełnie mi to nie idzie. Zadania wyglądają następująco:

https://zapodaj.net/883f1f9615699.jpg.html

W linku zdjęcie zadań
Ogólnie coś pobówałem z tym zrobić ale z tego co wiem zadania 2,5,7,8 i 10 mogą mieć błędy. Zwłaszcza zadanie 7, ponieważ ten 2gi select w ogóle nie chce zadziałać, a nie wiem czemu, może ma ktoś jakiś pomysł na to jak to ugryźć.
moje rozwiązania wyglądają następująco:

Zadanie 1

select s.IDSTUDENT,s.NAZWISKO,p.PRZEDMIOT,o.OCENA
from A1_STUDENT s join A1_OCENA o on s.IDSTUDENT = o.IDSTUDENT join A1_PRZEDMIOT p on o.IDPRZEDMIOT = p.IDPRZEDMIOT
where o.OCENA = 2

Zadanie 2

select p.PRZEDMIOT,count(o.OCENA) as "Ilosc ocen z przedmiotu"
from A1_PRZEDMIOT p join A1_OCENA o on o.IDPRZEDMIOT = p.IDPRZEDMIOT
group by p.PRZEDMIOT
having count(o.OCENA) > 0

Zadanie 3

select SEMESTR,count(PRZEDMIOT) as "liczba_przedmiotow"
from A1_PRZEDMIOT
GROUP BY SEMESTR
ORDER BY SEMESTR

Zadanie 4

select p.PRZEDMIOT,avg(o.OCENA) as "srednia"
from A1_PRZEDMIOT p join A1_OCENA o on o.IDPRZEDMIOT = p.IDPRZEDMIOT
where p.SEMESTR = 1
group by p.PRZEDMIOT

Zadanie 5

select count(o.OCENA) as "ilosc_ocen_pozytywnych",s.NAZWISKO
from A1_STUDENT s join A1_OCENA o on s.IDSTUDENT = o.IDSTUDENT
where (o.DATAWYSTAWIENIA > '15/01/01' AND o.DATAWYSTAWIENIA < '15/12/31') AND o.OCENA > 2
group by s.NAZWISKO
having count(o.OCENA) >= 2

Zadanie 6

select Przedmiot, Semestr
from A1_Przedmiot
where Przedmiot like '%baz%'
order by SEMESTR

Zadanie 7

select count(o.Ocena),s.NAZWISKO,(select avg(o.Ocena)
from A1_Student s join A1_Ocena o on s.IdStudent = o.IdStudent
) as srednia
from A1_Student s join A1_Ocena o on s.IdStudent = o.IdStudent
group by s.Nazwisko
having count(o.OCENA) >=3

Zadanie 8

select count(o.Ocena),s.NAZWISKO
from A1_Student s join A1_Ocena o on s.IdStudent = o.IdStudent
group by s.Nazwisko
having count(o.OCENA) = 0

Zadanie 9

select s.Nazwisko
from A1_STUDENT s join A1_OCENA o on s.IDSTUDENT = o.IDSTUDENT join A1_PRZEDMIOT p on p.IDPRZEDMIOT = o.IDPRZEDMIOT
where s.akt_semestr<p.semestr o.ocena="o.ocena" and="AND"> 2
group by s.NAZWISKO

Zadanie 10

select s.Nazwisko
from A1_STUDENT s join A1_OCENA o on s.IDSTUDENT = o.IDSTUDENT join A1_PRZEDMIOT p on p.IDPRZEDMIOT = o.IDPRZEDMIOT join A1_OCENA o2 on o2.IDSTUDENT=s.IDSTUDENT join A1_PRZEDMIOT p2 on p2.IDPRZEDMIOT=o2.IDPRZEDMIOT
where (p.Przedmiot ='Matematyka Dyskretna' AND o.OCENA > 2) AND (p2.PRZEDMIOT = 'Algebra liniowa' AND o2.OCENA > 2)
group by s.NAZWISKO

Z góry dzięki za jakąkolwiek pomoc
Go to the top of the page
+Quote Post
SmokAnalog
post 7.02.2018, 12:57:51
Post #2





Grupa: Zarejestrowani
Postów: 1 464
Pomógł: 235
Dołączył: 3.07.2012
Skąd: Poznań

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


Na początek ułatw forumowiczom zadanie i wrzuć zapytania w forumowy tag SQL. Najlepiej użyj też jakiegoś narzędzia do formatowania SQL, np. tego.
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: 20.09.2018 - 12:34