Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Sumowanie wartości pól z tabeli, zapytanie SQL
Speedy
post
Post #1





Grupa: Zarejestrowani
Postów: 651
Pomógł: 28
Dołączył: 4.12.2004

Ostrzeżenie: (0%)
-----


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 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) .

Pozdrawiam.
Go to the top of the page
+Quote Post
thornag
post
Post #2





Grupa: Zarejestrowani
Postów: 504
Pomógł: 2
Dołączył: 31.03.2006
Skąd: Londyn

Ostrzeżenie: (0%)
-----


  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.
Go to the top of the page
+Quote Post
Speedy
post
Post #3





Grupa: Zarejestrowani
Postów: 651
Pomógł: 28
Dołączył: 4.12.2004

Ostrzeżenie: (0%)
-----


Dzięki (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) . Rozwiązanie było dość proste (IMG:http://forum.php.pl/style_emoticons/default/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.

Ten post edytował Speedy 26.10.2006, 15:17:07
Go to the top of the page
+Quote Post
aniol
post
Post #4





Grupa: Zarejestrowani
Postów: 37
Pomógł: 0
Dołączył: 14.12.2003

Ostrzeżenie: (0%)
-----


Cytat(Speedy @ 26.10.2006, 16:16:38 ) *
Dzięki (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) . Rozwiązanie było dość proste (IMG:http://forum.php.pl/style_emoticons/default/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 ?
Go to the top of the page
+Quote Post
sniezny_wilk
post
Post #5





Grupa: Zarejestrowani
Postów: 732
Pomógł: 80
Dołączył: 25.05.2005
Skąd: Szczecin

Ostrzeżenie: (0%)
-----


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. ?>


(IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
aniol
post
Post #6





Grupa: Zarejestrowani
Postów: 37
Pomógł: 0
Dołączył: 14.12.2003

Ostrzeżenie: (0%)
-----


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. ?>


(IMG:http://forum.php.pl/style_emoticons/default/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. ?>
Go to the top of the page
+Quote Post
l0ud
post
Post #7





Grupa: Zarejestrowani
Postów: 1 387
Pomógł: 273
Dołączył: 18.02.2008

Ostrzeżenie: (0%)
-----


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. ?>
Go to the top of the page
+Quote Post
Liko
post
Post #8





Grupa: Zarejestrowani
Postów: 436
Pomógł: 6
Dołączył: 8.11.2003
Skąd: Szczecin

Ostrzeżenie: (0%)
-----


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. ?>
Go to the top of the page
+Quote Post
l0ud
post
Post #9





Grupa: Zarejestrowani
Postów: 1 387
Pomógł: 273
Dołączył: 18.02.2008

Ostrzeżenie: (0%)
-----


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ę...
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 00:02