Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
heja
Mam prośbę o pomoc w konstrukcji prostego zapytania w SQL-u (na marginesie działam na Mysql 5.0)
Mianowicie mam dwie tabele, ktore mają bardzo dużo rekordów, w jedej kolumnie znajduje się kwota i potrzebuje ją najzwyczajniej zliczyć z odpowiednimi założeniami z tabeli drugiej (na marginesie). Napisałem ten skrypt, ale chcę go zmodyfikować, ponieważ chcę sprawdzić czy kwoty się zgadzają i nie chcę żeby brał mi wszystkie rekordy z bazy tylko np. 4-ry.
tak wygląda moje zapytanie:
$sumuj_kwote=mysql_query("SELECT SUM(kwota) AS suma_kwoty FROM wk_wniosek,wk_dane WHERE wk_dane.czy_na_oddziale='0' AND (wk_dane.status='Zaakceptowano' OR wk_dane.status='Rezygnacja' OR wk_dane.status='Wyplacono') AND(wk_wniosek.id=wk_dane.id_wniosku) ");
i on pokazuje mi wszystkie rekordy, dodałem za tym LIMIT 4 - ale to nie pomogło dlaej mi sumuje wszystkie rekordy :(
proszę o pomoc !!
pozdrawiam
Offline
Z tego co zrozumiełem, poprzez użycie LIMIT 4 chcesz uzyskać, że zliczy Ci tylko pierwsze 4 krotki tabeli.
W rzeczywistości jest troszkę inaczej. LIMIT odnosi się do tego które wyniki zapytania mają być wyświetlone. Jeżeli chcesz, żeby zsumowało ci tylko 4 początkowe rekordy
uzyj np. takiego zapytania:
SELECT SUM(kwota) AS suma_kwoty FROM wk_wniosek w, wk_dane d WHERE d.czy_na_oddziale='0' AND (d.status = 'Zaakceptowano' OR d.status = 'Rezygnacja' OR d.status = 'Wyplacono') AND w.id = d.id_wniosku AND w.id < 5
PS. Zapytanie powinno zwrócić sumę pierwdszych 4 krotek, jeżeli tabela nie zawiera dziur w kluczu id. Jeżeli chcesz aby zwróciło niezależnie od tego użyj takiego zapytania:
SELECT SUM(s.kwota) AS suma_kwoty FROM (SELECT kwota FROM wk_wniosek w, wk_dane d WHERE d.czy_na_oddziale='0' AND (d.status='Zaakceptowano' OR d.status='Rezygnacja' OR d.status='Wyplacono') AND w.id=d.id_wniosku LIMIT 4) s
// zapytanie pisane z palca, więc może nie zadziałać, ogólnie chodzi o to, aby najpierw stworzyć wirtualną tabelę, która zawiera wszytskie interesujące nas rekordy, ograniczyć ją do 4, i dopiero sumę z tej tabeli zsumować.
Offline
dzieki wielkie sprawdze :) :) :)
Offline