Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

PHP &MySQL:Hiển thị SUM của thứ gì đó, được phân loại theo danh mục riêng biệt

Bạn có thể thử một câu lệnh sql như thế này để SUM các giá trị NHÓM theo một cột:

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

Và bạn có thể sử dụng điều này trong PHP như sau:(Tôi sẽ nhập bằng PDO vì các lệnh mysql_ hiện đã cũ và không được khuyến khích)

//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
}

Điều này sẽ hoạt động nếu bạn chỉnh sửa nó đúng cách. Nó có thể hơi phức tạp nếu bạn không chắc chắn về cách sử dụng PDO, tôi khuyên bạn nên xem qua nó.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL Sắp xếp theo thứ tự bảng chữ cái nhưng bỏ qua

  2. Làm thế nào để sử dụng phân biệt chữ hoa chữ thường trong hướng dẫn () trong MySQL?

  3. Hiệu suất mysql BIGINT so với INT

  4. Ví dụ về MICROSECOND () - MySQL

  5. khi tôi sử dụng bí danh find_by_sql, tôi đã nhầm lẫn