SubQuery PHP显示0作为结果

时间:2015-10-14 17:27:12

标签: php mysql

我试图做一个报告,但这个查询返回0,你能帮忙吗? 此报告将在表格中显示此查询的结果。查询没问题,我在数据库中使用定向并工作[检查直接在DB 1中运行的查询图像

$seleciona4 = "SELECT rel1.grupo,
               (SELECT count(1)
                FROM relatorios.relatorio rel2
                WHERE rel2.grupo  = rel1.grupo
                AND rel2.status = 'Em Análise') as count_analise,

        (SELECT count(1)
                FROM relatorios.relatorio rel2
                WHERE rel2.grupo  = rel1.grupo
                AND rel2.status = 'Aguardando Correção') as count_correcao,

        (SELECT count(1)
                FROM relatorios.relatorio rel2
                WHERE rel2.grupo  = rel1.grupo
                AND rel2.status = 'Em trabalho') as count_trabalho,

        (SELECT count(1)
                FROM relatorios.relatorio rel2
                WHERE rel2.grupo  = rel1.grupo
                AND rel2.status = 'Pendente usuário') as count_usuario,

        (SELECT count(1)
                FROM relatorios.relatorio rel2
                WHERE rel2.grupo  = rel1.grupo
                AND rel2.status in ('Em Análise', 'Aguardando Correção', 'Em trabalho','Pendente usuário')) as count_total


        FROM   relatorios.relatorio rel1
        WHERE  rel1.grupo != 'O2A'
        GROUP BY rel1.grupo
        ORDER BY 6 DESC;";

$resultado4 = mysql_query($seleciona4) or die(mysql_error());
?>
<br><br>• Non-Workable
<Table border>
<tr>
    <td>Grupo</td>
    <td>Em Analise</td>
    <td>Aguardando correção</td>
    <td>Em Trabalho</td>
    <td>Pendente Usuário</td>
    <td>Total</td>
</tr>

<?php
while($tb_inc4 =  mysql_fetch_array($resultado4) ){
    $tb_inc4= (object)$tb_inc4;

    $grupo4 = $tb_inc4->grupo;
    $analise4 = $tb_inc4->analise;
    $correcao4 = $tb_inc4->correcao;
    $trabalho4 = $tb_inc4->trabalho;
    $usuario4 = $tb_inc4->usuario;
    $total4 = $tb_inc4->total;

    echo "<tr>
            <td>$grupo4</td>
            <td>$analise4</td>
            <td>$correcao4</td>
            <td>$trabalho4</td>
            <td>$usuario4</td>
            <td>$total4</td>
          </tr>";
}
?></table>

1 个答案:

答案 0 :(得分:1)

您应该使用条件聚合。更简单的查询可能有助于您找到问题所在:

SELECT r.grupo,
       SUM(r.status = 'Em Análise') as count_analise,
       SUM(r.status = 'Aguardando Correção') as count_correcao,
       SUM(r.status = 'Em trabalho') as count_trabalho,
       SUM(r.status = 'Pendente usuário') as count_usuario,
       SUM(r.status in ('Em Análise', 'Aguardando Correção', 'Em trabalho','Pendente usuário')) as count_total
from relatorios.relatorio r
where r.grupo <> 'O2A'
group  by r.grupo
order by 6 desc

请注意,查询不以分号结尾。应用程序界面通常不喜欢这样。说到这一点,你应该使用目前支持的mysqli_或PDO。