Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [mysql] porbanie sumy kwoty zamowien dla danego kl
Forum PHP.pl > Forum > Bazy danych > MySQL
stal-sw
Witam.
Mam 2 tabele:
- klienci - client_id, nazwa, email
- zamowienia - order_id, Client_id, kwota_zamowienia,

I teraz mam problem z wysietleniem listy wszytkich klientow wraz z SUMA wszytkich zamowien jakie wykonali oraz liczbe zamowien kazdego klienta

Bardzo prosze o pomoc.
Bo ja anraize takie cos wykombinowalem i nei wiem jak laczyc COUNT oraz SUM z LEFTJOINami - a chyba te ostantie beda potrzebne w tym zpaytaniu questionmark.gif

  1. <?php
  2.  
  3. $prod = $db->get_results(&#092;"SELECT * FROM \".CLIENTS.\" a 
  4. LEFT JOIN &#092;".ORDERS.\" b ON b.client_id=a.client_id 
  5. $warunki $sqlord&#092;", ARRAY_A);  
  6.  
  7. ?>
jedrus4
Cytat(stal-sw @ 2005-05-27 13:34:34)
I teraz mam problem z wysietleniem listy wszytkich klientow wraz z SUMA wszytkich zamowien jakie wykonali oraz liczbe zamowien kazdego klienta

  1. SELECT klienci.client_id, klienci.email,
  2. count(zamowienia.order_id) AS ilosc_zamowien,
  3. sum(zamowienia.kwota_zamowienia) AS ilosc_zamowien
  4. FROM klienci INNER JOIN zamowienia ON klienci.client_id = zamowienia.client_id
  5. GROUP BY klienci.client_id


jesli chcesz miec rowniez uwzglednionych klientow, ktorzy nie skladali zamowien, wystarczy ze zamienisz INNER JOIN na LEFT JOIN.

pzdr
behemot
Witam,
  1. SELECT count(k.client_id) AS ilosc ,k.nazwa AS nzwa, sum(z.suma) AS suma
  2. FROM zamowienia z LEFT JOIN klient k ON (k.client_id = z.client_id) GROUP BY k.nazwa

Moze tak?
jedrus4
Cytat(behemot @ 2005-05-27 14:16:18)
  1. SELECT count(k.client_id) AS ilosc ,k.nazwa AS nzwa, sum(z.suma) AS suma
  2.  
  3. FROM zamowienia z LEFT JOIN klient k ON (k.client_id = z.client_id) GROUP BY k.nazwa

grupujesz po nazwie klientow, a co bedzie jesli znajda sie dwaj klienci o tej samej nazwie smile.gif
tongue.gif
behemot
Racje :-) Moje niedopatrzenie, tak na szybko napisalem. :-)
Tak ma byc:
  1. SELECT count(k.client_id) AS ilosc ,k.nazwa AS nzwa, sum(z.suma) AS suma
  2. FROM zamowienia z LEFT JOIN klient k ON (k.client_id = z.client_id) GROUP BY k.client_id
stal-sw
Witam.
Nirestey mam problem:
Jak zmeinic to zapytanie z pierwszej dowpiedzi aby nazwy table w bazie byly w postaci ".ORDERS.", ".CLIENTS." oraz aby byla notacja w postaci a.client_id , b.kwota.....

Z gory dzieki za pomoc
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-2024 Invision Power Services, Inc.