![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 38 Pomógł: 0 Dołączył: 23.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Mam nastepujace wyniki pobrane z bazy danych: (SELECT COUNT(wynik_id) FROM ".DB_WYNIKI." WHERE sesja_id =5 AND user_id='".$_GET['user_id']."') AS wynik1, (SELECT AVG(miejsce) FROM ".DB_WYNIKI." WHERE sesja_id =5 AND user_id='".$_GET['user_id']."') AS wynik2, (SELECT SUM(lider) FROM ".DB_WYNIKI." WHERE sesja_id =5 AND user_id='".$_GET['user_id']."') AS wynik3 i chcialbym wykonac na nich nastepujace dzialania arytmetyczne: wynik1 * 0,01 + wynik2 * 0,02 + wynik3 * 0,02 W jaki sposob powinienem to zapisac by jak najplynniej bez obciazania serwera mogl uzyskac wynik tych dzialan? |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 045 Pomógł: 141 Dołączył: 19.09.2006 Skąd: B-tów Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 38 Pomógł: 0 Dołączył: 23.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
W swoim poscie bardzo skrocilem liczbe i rodzaj zapytan poniewaz chodzilo mi tylko o poznanie metody jak to zrobic a reszte zbudowalbym sobie sam ale teraz juz widze ze w ten sposob co podales Sazian nie bede mogl tego zrobic dlatego bo:
nie zaznaczylem tego ale kryteria where nie sa zawsze takie same - czasem jest sesja_id=5 a innymi razem 1,2,3 itd w zaleznosci od rodzaju wyniku jaki chce uzyskac a w koncowcym zapytaniu sumowym bede chcial je umiescic. Kryteria where ponadto nie roznia sie tylko sesja ale w niektorych wynikach dochodza nowe kryteria jak rok itd dlatego nie moge where sprowawdzic do wspolnego mianownika wszystkich wynikow poniewaz kazdy wynik ma inne kryteria (czesc sie powtarza czesc ma inne). To co pozostaje stale to to ze wyciagane wyniki sa z tabeli wyniki i ze kryterium podstawowe to pobieranie wynikow tylko dla danego usera. Jeszcze jedna sprawe na ktora chcialbym zwrocic uwage to fakt ze ostateczny wynik tych dzialan arytmetycznych bedzie wykorzystywany w tym samym zapytaniu tak samo jak te pierwsze wyniki (wynik1, wynik2 itd). Na stronie bedzie tabela gdzie w jednej kolumnie bedzie wynik1, w drugiej wynik2 a na koncu wynik (o ktory pytam). Dlatego wszystko musi byc w jednym zapytaniu. W zwiazku z tym prosilbym o pomoc w zrobeniu tych dzialan arytmetycznych wykorzystujacych wyniki pobrane w taki sposob: (SELECT COUNT(wynik_id) FROM ".DB_WYNIKI." WHERE sesja_id =5 AND user_id='".$_GET['user_id']."') AS wynik1, (SELECT AVG(miejsce) FROM ".DB_WYNIKI." WHERE sesja_id =3 AND user_id='".$_GET['user_id']."') AS wynik2, (SELECT SUM(lider) FROM ".DB_WYNIKI." WHERE sesja_id =1 AND rok=3 AND user_id='".$_GET['user_id']."') AS wynik3 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 421 Pomógł: 310 Dołączył: 18.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
Zapytanie z podzapytania:
Ja natomiast jestem zwolenniekiem wykonywania wszystkiego za jednym zapytaniem. Nawet twoje zapytanie można tak wykonać... ![]()
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 1 421 Pomógł: 310 Dołączył: 18.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
Tu masz odpowiedź: http://forum.php.pl/index.php?s=&showt...t&p=1015507
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 13:47 |