Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Sumowanie selektywne
Forum PHP.pl > Forum > Bazy danych > MySQL
general
To zadanie mnie przerasta...

1. Bazy: "DB_USERS" - użytkownicy, "DB_PAYMENTS" - wpłaty użytkowników

ZADANIE: Wyświetl listę użytkowników, podając NICK i SUMĘ wpłaconych kwot.

2. "Moje" rozwiązanie:

pole pay_name z DB_PAYMENTS zawiera id użytkownika z DB_USERS user_id

  1. $result = dbquery("SELECT tu.*, pay_name, pay_ile FROM DB_USERS tu
  2. LEFT JOIN DB_PAYMENTS tp ON tu.user_id=tp.pay_name
  3. WHERE tu.user_name LIKE 'R' // wybierz tylko użytkowników na 'R'
  4. ORDER BY user_name LIMIT 0, 20");

Wyświetla:
Rysio - 3000
Rysio - 100
Rysio - 20
Rzepa - 50
Rzepa - 400

Jak zrobić, by każdemu użytkownikowi z osobna zsumować liczbę wpłat?
By wyświetliło:
Rysio - 3120
Rzepa - 450

Będę wdzięczny za pomoc!

-----
  1. FUNCTION dbquery($query) {
  2. $result = @mysql_query($query);
  3. IF (!$result) {
  4. echo mysql_error();
  5. RETURN false;
  6. else {
  7. RETURN $result;
  8. }
  9. }
blooregard
select sum(wplaty.platnosci_rysia) , uzytkownicy.nazwa_uzytkownika from wplaty, uzytkownicy where id_uzytkownika = [id] GROUP BY id_uzytkownika
general
Dziękuję bardzo! Odpowiedź naprowadziła mnie na bardzo proste rozwiązanie:

  1. while...
  2. SELECT SUM(pay_ile) AS sum_ile FROM DB_PAYMENTS WHERE pay_name=DB_USERS.user_id
  3. print 'sum_ile'

yahoo.gif
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.