Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Sumowanie wartości pól z tabeli
Forum PHP.pl > Forum > Bazy danych > MySQL
Speedy
hej,

Podam przykład tabeli, który będzie pomocny w zobrazowaniu mojego problemu:

Kod
---------------------------------------------------------
Wiersz  | Kolumna_01    | Kolumna_02    | Kolumna_03    |
--------|---------------|---------------|---------------|  
wiersz01|        1      |        4      |        7      |
wiersz02|        2      |        5      |        8      |
wiersz03|        3      |        6      |        9      |
---------------------------------------------------------

Suma dla Kolumny_01 = 6
Suma dla wszystkich kolumn = 45


Mój problem jest następujący

W podanych kolumnach wszystkie wartości są liczbowe. Potrzebuję obliczyć sumę wartości, które znajdują się we wszystkich rekordach w wybranej kolumnie. Potrzebuję też zrobić coś takiego, tylko że dla wszystkich kolumn, tj. Obliczyć sumę wartości wszystkich rekordów w kilku kolumnach.
Można to oczywiście zrobić w php z wykorzystaniem pętli, ale to rozwiązanie wykluczam ze względu na jego bardzo niską wydajność, gdyż moja tabela zawiera ponad 7000 rekordów. W związku z tym wolałbym zrobić jakieś sensowne zapytanie SQL.

Proszę o pomoc smile.gif.

Pozdrawiam.
thornag
  1. SELECT SUM(pole1) AS suma1, SUM(*) AS suma FROM ......


Nie wiem tylko czy da sie z * jesli nie to powstawiaj tam pozostale dwie kolumny a niech php Ci to zsumuje.
Speedy
Dzięki winksmiley.jpg. Rozwiązanie było dość proste tongue.gif. Moje pytanie wynikało z mojej średniej znajomości składni SQL. Właściwie polecenie SUM rozwiązuje cały problem. Podczas sumowania kilku kolumn odpowiednie jest:

  1. SELECT SUM(pole1) + SUM(pole2) FROM `tabela`;


Pozdrawiam.
aniol
Cytat(Speedy @ 26.10.2006, 16:16:38 ) *
Dzięki winksmiley.jpg. Rozwiązanie było dość proste tongue.gif. Moje pytanie wynikało z mojej średniej znajomości składni SQL. Właściwie polecenie SUM rozwiązuje cały problem. Podczas sumowania kilku kolumn odpowiednie jest:

  1. SELECT SUM(pole1) + SUM(pole2) FROM `tabela`;


Pozdrawiam.


Temat ten i mnie zainteresowa, nie mogę sobie poradzić jednak z wyświetleniem
wyników takiego zapytanie. W jakiej formie zwracany jest wynik, jako co ?
Co trzeba zrobić aby wyświetlić liczbę będącą efektem zapytania ?
sniezny_wilk
Cytat(aniol @ 23.06.2008, 11:18:17 ) *
Temat ten i mnie zainteresowa, nie mogę sobie poradzić jednak z wyświetleniem
wyników takiego zapytanie. W jakiej formie zwracany jest wynik, jako co ?
Co trzeba zrobić aby wyświetlić liczbę będącą efektem zapytania ?


A wykonaj sobie zapytanie i to zrób

  1. <?php
  2. print_r($result_z_bazy);
  3. ?>


winksmiley.jpg
aniol
Cytat(sniezny_wilk @ 23.06.2008, 13:38:47 ) *
A wykonaj sobie zapytanie i to zrób

  1. <?php
  2. print_r($result_z_bazy);
  3. ?>


winksmiley.jpg


W sumie zrobiłem tak:


  1. <?php
  2. $query = mysql_query("SELECT SUM(licznik) AS suma_licznikow FROM $mysql_table");
  3. while($wiersz = mysql_fetch_array($query))
  4. {
  5. $suma_licznikow = $wiersz[suma_licznikow];
  6. }
  7. echo $suma_licznikow;
  8. ?>
l0ud
Ta pętla jest w ogóle niepotrzebna.

  1. <?php
  2. $query = mysql_query("SELECT SUM(licznik) AS suma_licznikow FROM $mysql_table");
  3.  
  4. $suma_licznikow = $wiersz['suma_licznikow'];
  5.  
  6. echo $suma_licznikow;
  7. ?>
Liko
Cytat(l0ud @ 24.06.2008, 16:29:15 ) *
Ta pętla jest w ogóle niepotrzebna.

  1. <?php
  2. $query = mysql_query("SELECT SUM(licznik) AS suma_licznikow FROM $mysql_table");
  3.  
  4. $suma_licznikow = $wiersz['suma_licznikow'];
  5.  
  6. echo $suma_licznikow;
  7. ?>


Chyba potrzebujesz jednak douczenia!
Cytat
resource mysql_query ( string $query [, resource $link_identifier ] )


Więc prawidłowy kod:
  1. <?php
  2. $sSum = mysql_result( mysql_query("SELECT SUM(licznik) AS suma_licznikow FROM $mysql_table"), 0 );
  3.  
  4. echo $sSum;
  5. ?>
l0ud
Cytat
Chyba potrzebujesz jednak douczenia!


Faktycznie, przykład był zły, tak czy siak pętla była niepotrzebna. Nie zmienia to faktu, że mogłeś kulturalniej zwrócić uwagę...
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.