0

多次元配列の扱いに問題がありました。以下は、mysql から配列へのすべてのデータ クエリを格納するコードです。多次元配列内の異なるモジュール名の数を計算し、ステータスを遅れて存在する2つの列に分割する方法はありますか? SQL クエリは、すべての ModuleName とさまざまなステータスを格納する複雑なテーブルからデータを取得します。それらを分類して表に表示する必要があります。したがって、基本的には、配列内のモジュールの数と、モジュールの遅延または存在するモジュールの数を確認する必要があります。

while($array = mysql_fetch_array($result)){
        $list[] = array(
                        "ModuleName"=>$array['ModuleName'],
                        "status"    =>$array['Status']
            ); 
    }

SQL クエリのサンプル

これは期待される結果のサンプルです

期待される結果の例

4

1 に答える 1

1

ModuleName でグループ化するように更新

SELECT ModuleName
      ,COUNT(*) AS module_count
      ,SUM(CASE WHEN Status != 'Present' THEN 1 ELSE 0 END) as late_count
      ,SUM(CASE WHEN Status  = 'Present' THEN 1 ELSE 0 END) as present_count
  FROM ( your original query )
 GROUP BY ModuleName

「元のクエリ」を、配列内のデータを取得するために使用した SQL に置き換えるだけです。

オリジナル

SELECT COUNT(*) AS module_count
      ,SUM(CASE WHEN Status != 'present' THEN 1 ELSE 0 END) as late_count
      ,SUM(CASE WHEN Status  = 'present' THEN 1 ELSE 0 END) as present_count
  FROM ( your original query )
于 2013-09-10T16:44:30.113 に答える