0

我遇到了处理多维数组的问题。下面是将所有数据查询从 mysql 存储到数组的代码。我可以知道如何计算多维数组中有多少个不同的模块名称并将状态分成两列,它们是迟到的还是现在的?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 回答