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 25.10.2006, 13:43:55
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 smile.gif.

Pozdrawiam.


--------------------
Sygnatura niezgodna z regulaminem.
Go to the top of the page
+Quote Post
thornag
post 25.10.2006, 14:00:24
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.


--------------------
"Wizja czasu jest szeroka, lecz kiedy sie przez nia przechodzi, czas staje sie waskimi drzwiami"

Go to the top of the page
+Quote Post
Speedy
post 26.10.2006, 15:16:38
Post #3





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

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


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.

Ten post edytował Speedy 26.10.2006, 15:17:07


--------------------
Sygnatura niezgodna z regulaminem.
Go to the top of the page
+Quote Post
aniol
post 23.06.2008, 12:18:17
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 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 ?
Go to the top of the page
+Quote Post
sniezny_wilk
post 23.06.2008, 12:38:47
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. ?>


winksmiley.jpg


--------------------
Go to the top of the page
+Quote Post
aniol
post 24.06.2008, 14:46:16
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. ?>


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 24.06.2008, 15:29:15
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. ?>


--------------------
XMPP: l0ud@chrome.pl
Go to the top of the page
+Quote Post
Liko
post 24.06.2008, 16:33:21
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 24.06.2008, 16:56:34
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ę...


--------------------
XMPP: l0ud@chrome.pl
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 Wersja Lo-Fi Aktualny czas: 27.01.2020 - 21:58