Mysql
 sql >> Baza danych >  >> RDS >> Mysql

PHP i MySQL :Pokaż SUMA czegoś, sklasyfikowane według odrębnych kategorii

Możesz wypróbować taką instrukcję sql, aby SUMOWAĆ wartości Grupując według kolumny:

SELECT SUM(value) as Total_val, category FROM tbl_transaction GROUP BY category

Możesz użyć tego w PHP w ten sposób:(Będę pisał z PDO, ponieważ polecenia mysql_ są teraz stare i nie są zalecane)

//Creating connection
$connection=new PDO("mysql:host=127.0.0.1;dbname=database_name","root","");

//Creating main query, fetching main categories
$query=$connection->prepare("SELECT category, SUM(value) as MAIN_CAT_TOTAL_VAL FROM tbl_transaction GROUP BY category");
$query->execute(); //executing query

foreach($query->fetchAll() as $q) //fetching results
{
    echo "<b>".$q["category"].":<br/></b>"; //printing main category name

    //creating second query which sums value column and groups by sub category
    $query2=$connection->prepare("SELECT SUM(value) as TOTAL_VALUE, sub-category FROM tbl_transaction WHERE category=:p1 GROUP BY sub-category");   
    $query2->bindParam(":p1",$q["category"],PDO::PARAM_STR); //binding parameter to second query
    $query2->execute(); //executing second query
    foreach($query2->fetchAll() as $q2) //fetching the results
    {
        echo $q2["sub-category"]." -> ".$q2["TOTAL_VALUE"]."<br/>"; //printing the results
    }

    echo "total amount of category ".$q["category"]." = ".$q["MAIN_CAT_TOTAL_VAL"];
    echo "<hr/>"; //cosmetics
}

Powinno to zadziałać, jeśli odpowiednio je zmodyfikujesz. Może to wyglądać trochę skomplikowanie, jeśli nie jesteś pewien, jak używać PDO, sugeruję, abyś się temu przyjrzał.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. utwórz sformatowany arkusz kalkulacyjny Excel z danymi MySQL i PHP przy użyciu tabel

  2. Musisz pobrać dane produktu z bazy danych mysql

  3. Jak wstawić DECIMAL do bazy danych MySQL

  4. Jak zarządzać połączeniami DB tylko do odczytu na poziomie aplikacji?

  5. Jednoczesne wstawianie MySQL w tej samej tabeli:jak?