sql >> Database teknologi >  >> RDS >> Mysql

PHP &MySQL :Vis SUM af noget, klassificeret efter særskilt kategori

Du kan prøve en sql-sætning som denne for at SUMME værdierne, der grupperes med en kolonne:

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

Og du kan bruge dette i PHP sådan her:(Jeg skriver med PDO, fordi mysql_-kommandoer bliver gamle lige nu og anbefales ikke)

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

Dette burde virke, hvis du redigerer det korrekt. Det kan se lidt kompliceret ud, hvis du ikke er sikker på, hvordan du bruger PDO. Jeg foreslår, at du tager et kig på det.




  1. Overvågning af ydeevnetællere via PERFMON | SQL Server Performance Fejlfinding -3

  2. Om Neo4j

  3. Adgang med Microsoft SQL Server – Importer store datasæt ved hjælp af SSIS

  4. SQLSTATE[23000]:Overtrædelse af integritetsbegrænsning:1452 Kan ikke tilføje eller opdatere en underordnet række:en fremmednøglebegrænsning mislykkes