sql >> Databáze >  >> RDS >> Mysql

PHP a MySQL:Zobrazit SUM of Something, klasifikováno podle odlišné kategorie

Můžete zkusit příkaz sql, jako je tento, pro SOUČET hodnot Seskupení podle sloupce:

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

A můžete to použít v PHP takto:(Budu psát s PDO, protože příkazy mysql_ právě teď stárnou a nedoporučují se)

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

To by mělo fungovat, pokud to správně upravíte. Pokud si nejste jisti, jak používat CHOP, může to vypadat trochu složitě, doporučuji vám, abyste se na to podívali.




  1. Jaká je výchozí přesnost a měřítko pro číslo v Oracle?

  2. Jak vytvořit dva sloupce automatického přírůstku v MySQL?

  3. Android sqlite db.query vede k výjimce CursorIndexOutOfBoundsException

  4. SQL OUTPUT Uložené procedury nefungují s ExecuteReader