Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jak powinno wygladac zapytanie ?
Forum PHP.pl > Forum > Bazy danych > Oracle
paweln
Jest sobie tabela "rejestracje" a w niej:
Id_studenta,
Nr_sesji,
Symbol, - jest to symbol przedmiotu np: MA, IT, GE
Wpłata - czyli ile dany student wpłacił

Chodzi o to że muszę zliczyć wpływy szkoły
wystarczyło by:
  1. SELECT sum(wpłata) FROM rejestracje;

ale ja muszę zrobić tak aby było to policzone osobno dla kazdego przedmiotu.
czyli
MA Matematyka - 210
IT Informatyka - 320
itp.

nazwa ma byc wzieta z tabeli przedmioty.
Proszę o pomoc.
modzel
ja bym to zrobił tak rolleyes.gif

  1. SELECT sum(wpłata) FROM rejestracje GROUP BY Symbol
paweln
Dzięki
He po wysłaniu postu sam do tego doszedlem smile.gif ale pojawił się kolejny problemos.
Otóż muszę porównać opłate przedmiotu np (50) z tabeli przedmioty z wpłatą z tabeli rejestracje i sprawdzić czy student wpłacił te 50 czy mniej.
Potem obliczyc ile powiniem wynisic wpływ a ile dług. Troche to zakrecone ale moze mi ktos troszkę pomoże.

Kombinuje że powinno to wygladać tak:
zliczyć grupowo ile studentów na jak przedmiot się zarejestrował i pomnożyć to
przez stawkę za dany przedmiot potem trzebaby było od tego odjąc zliczone
wpłacone dane za każdy przedmiot. Moze zle kombinuje i jest prostsze
rozwiazanie takiego problemu.
  1. SELECT symbol,count(symbol) FROM rejestracje GROUP BY symbol;

zliczy ile osob jest na danym przedmiocie.

  1. SELECT symbol,opłata FROM przedmioty;

pokaze stawke za kazdy przedmiot tylko
jak to połączyc (pomnozyc przez siebie)questionmark.gif zeby zliczyc ile powinien wynosic
dochod??
modzel
moze cos takiego?? aarambo.gif
  1. SELECT
  2. case when r.wplata >= p.opłate then
  3. r.wplata - p.opłate
  4. else
  5. 0
  6. end NADPLATA,
  7.  
  8. case when p.opłate > r.wplata then
  9. p.opłate -r.wplata
  10. else
  11. 0
  12. end DLUG,
  13. FROM(przedmioty p JOIN rejestracje r ON p.Symbol ON r.symbol)
  14. WHERE r.Id_studenta = ID_STUD
paweln
Hmm, jakos nie moge tego uruchomic. Korzystam z SQL*PLUS i otrzymuje błąd:
ORA-00923: nie znaleziono słowa kluczowego FROM w oczekiwanym miejscu. sad.gif
Nie ma jakiegoś prostszego sposobu questionmark.gif
modzel
po DLUG jest niepotrzebny przecinek
Kod
select
case when r.wplata >= p.opłate then
r.wplata - p.opłate
else
0
end NADPLATA,

case when p.opłate > r.wplata then
p.opłate -r.wplata
else
0
end DLUG
from(przedmioty p join rejestracje r on p.Symbol on r.symbol)
where r.Id_studenta = ID_STUD
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.