sql >> データベース >  >> RDS >> Mysql

PHPとMySQL:個別のカテゴリで分類された何かの合計を表示

    次のようなSQLステートメントを試して、列ごとにグループ化された値を合計できます。

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

    そして、これをPHPで次のように使用できます:( mysql_コマンドは現在古くなっており、推奨されていないため、PDOで入力します)

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

    これは、適切に編集すれば機能するはずです。 PDOの使用方法がわからない場合は、少し複雑に見える可能性があります。ぜひご覧になることをお勧めします。




    1. Python3でMySQLデータベースへの入力をエスケープするにはどうすればよいですか?

    2. SQLServer2012のパフォーマンス関連の修正

    3. prepareStatement構文エラー

    4. ORA-01264:ログ・ファイル名を作成できません