Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Błednie działające zapytanie (grupowanie, sortowanie)
piopix
post 4.03.2009, 13:55:30
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 4.03.2009

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


Krotko wyjasnie budowe bazy i problem.
Mam trzy tabele:
klasyfikacja(idskoczek,ps,...) idskoczek jest unikatowym id skoczka, ps iloscia punktow przez niego zdobytych;
skoczkowie(idskoczek,idkraj,...) idkraj jest unikatowym id kraju,
kraje(idkraj,nazwakraju,...) chyba czytelne ;-).

Chce zrobic zapytanie ktore zsumuje ilosc punktow zdobtytych przez skoczkow kazdego kraju, a nastepnie posortuje powstala liste malejaco.
Z niewiadomych mi przyczyn problem pojawia sie gdy uzywam group by. Punkty sa wtedy blednie zsumowane, praktycznie zadna cyfra sie nie zgadza.

Moje zapytanie wejsciowe wyglada tak (tu jeszcze bez zamiany idkraju na nazwe i sortowanie, ale w momencie w ktorym juz sie blednie sumuje).

Kod
select skoczkowie.idkraj, klasyfikacja.ps from skoczkowie,klasyfikacja where klasyfikacja.idskoczek=skoczkowie.idskoczek group by idkraj;


Co robie źle?
Go to the top of the page
+Quote Post
sowiq
post 4.03.2009, 14:02:19
Post #2





Grupa: Zarejestrowani
Postów: 1 890
Pomógł: 339
Dołączył: 14.12.2006
Skąd: Warszawa

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


Ja bym to zrobił tak:
  1. SELECT kr.nazwakraju AS kraj, SUM(k.ps) AS ilosc_punktow
  2. FROM skoczkowie s
  3. LEFT JOIN klasyfikacja k ON (k.idskoczek = s.idskoczek)
  4. LEFT JOIN kraje kr ON (kr.idkraj = s.idkraj)
  5. GROUP BY kr.idkraj
  6. ORDER BY ilosc_punktow DESC


Ten post edytował sowiq 4.03.2009, 14:19:14
Go to the top of the page
+Quote Post
piopix
post 4.03.2009, 14:14:39
Post #3





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 4.03.2009

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


Wydaje mi sie ze twoj kod liczy ilosc zawodnikow z poszczegolnych krajow, a nie sumuje ich punkty.
Problem chyba polega na tym co zdefiniowales jako ilosc_punktow czyli ten kawalek:

Kod
COUNT(k.ps) AS ilosc_punktow


Count chyba zlicza elementy, a nie sumuje...

Dzięki wielkie, teraz sobie poradzilem. Sog.

Ten post edytował piopix 4.03.2009, 14:29:15
Go to the top of the page
+Quote Post
sowiq
post 4.03.2009, 14:19:46
Post #4





Grupa: Zarejestrowani
Postów: 1 890
Pomógł: 339
Dołączył: 14.12.2006
Skąd: Warszawa

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


Cytat(piopix @ 4.03.2009, 14:14:39 ) *
Count chyba zlicza elementy, a nie sumuje...
Masz rację, pomyliłem się. Już poprawiłem.
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: 6.06.2024 - 06:49