Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zapytanie o Sumę spełniającą warunek
Forum PHP.pl > Forum > Bazy danych > MySQL
Tomplus
Witam,

Szukałem rozwiązania ale nie znalazłem, więc piszę tutaj:
Idealnym przykładem do rozwiązania jest ten przykład:
http://www.tizag.com/mysqlTutorial/mysqlsum.php
Kod
id    name    type    price
123451    Park's Great Hits    Music    19.99
123452    Silly Puddy    Toy    3.99
123453    Playstation    Toy    89.95
123454    Men's T-Shirt    Clothing    32.50
123455    Blouse    Clothing    34.97
123456    Electronica 2002    Music    3.99
123457    Country Tunes    Music    21.55
123458    Watermelon    Food    8.73



  1. <?php
  2. // Make a MySQL Connection
  3.  
  4. $query = "SELECT type, SUM(price) FROM products GROUP BY type";
  5.  
  6. $result = mysql_query($query) or die(mysql_error());
  7.  
  8. // Print out result
  9. while($row = mysql_fetch_array($result)){
  10. echo "Total ". $row['type']. " = $". $row['SUM(price)'];
  11. echo "<br />";
  12. }
  13. ?>


oraz wynik:
Kod
Total Clothing = $67.47
Total Food = $8.73
Total Music = $45.53
Total Toy = $93.94


Super, działa. Ale to dla mnie żaden problem, jednakże mają u siebie analogiczne rozwiązanie chciałem aby móc wyświetlić tylko te elementy które są wyższe niż warunek,.

Dlatego przetestowałem zapytanie
  1. SELECT type, SUM(price) AS PRICE FROM products WHERE PRICE>=10 GROUP BY type

Oczywiście nie działa i nie znalazłem nigdzie sposobu na rozwiązanie tego problemu gdzie chciałbym wyświetlić tylko te drogie, albo tanie produkty.

Czy ktoś zna rozwiązanie?
nospor
nie WHERE a HAVING. where nie służy dla warunkowania grupowań
Tomplus
Oczywiście WHERE jest potrzebne, ale do wyciągania konkretnych rekordów, ale tak HAVING było rozwiązaniem.

HAVING PRICE>=10
i wyświetliło mi to co chciałem.

Dziękuje!
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.