0

私の人生が上部で間違ってカウントされているが、while fetch配列の下部ではすべて正しいという小さな問題があります。

以下のようにDBに格納されます。

人生=1 IPP=1 葬儀=1

クエリは、行が 1 に一致するかどうかを確認してカウントする必要があります。

 mysql_query("SELECT DISTINCT consultant, COUNT(*) as total, 
        sum(CASE WHEN life = '1' then 1 else 0 end) life,
        sum(CASE WHEN funeral = '1' then 1 else 0 end) funeral,
        sum(CASE WHEN IPP = '1' then 1 else 0 end) IPP
         FROM new WHERE call_date = '".$date."' and `qc_status` != 'Fail' GROUP BY consultant ORDER BY total DESC, life DESC, funeral DESC");

ライフ トータルが 9 のスタッフ メンバーがいますが、上記のスクリプトを実行すると = 8 になります。

リストをさらに下に見ると、スタッフ メンバーが 4 人いて、DB では 4 人です。

Full script.
{
        $totallife=0;
        $totalfuneral;
        $totalIPP;
        $total =0;
        $agents = mysql_query("SELECT DISTINCT consultant, COUNT(*) as total, 
        sum(CASE WHEN life = '' then 0 else 1 end) as life,
        sum(CASE WHEN funeral = '1' then 1 else 0 end) as funeral,
        sum(CASE WHEN IPP = '1' then 1 else 0 end) IPP
         FROM new WHERE call_date = '".$date."' and `qc_status` != 'Fail' GROUP BY consultant ORDER BY total DESC, life DESC, funeral DESC");
        while($agent = mysql_fetch_array($agents)){
            $totallife = $totallife+$agent[life];
            $totalfuneral = $totalfuneral+$agent[funeral];
            $totalIPP = $totalIPP+$agent[IPP];
            $total= $total+$agent[total];
            echo "<tr><td>".$agent[consultant]."</td><td>".$agent[life]."</td><td>".$agent[funeral]."</td><td>".$agent[IPP]."</td><td>".$agent[total]."</td></tr>";
        }

        echo "<tr><td><b>TOTALS</b></td><td><b>".$totallife."</b></td><td><b>".$totalfuneral."</b></td><td><b>".$totalIPP."</b></td><td><b>".$total."</b></td></tr>";
    }
4

1 に答える 1

1

すでにそのフィールドでグループ化しているため、DISTINCTからを削除します。SELECTconsultant

SELECT 
    consultant, 
    COUNT(*) as total, 
    sum(CASE WHEN life = '1' then 1 else 0 end) life,
    sum(CASE WHEN funeral = '1' then 1 else 0 end) funeral,
    sum(CASE WHEN IPP = '1' then 1 else 0 end) IPP
FROM 
    new 
WHERE 
    call_date = '".$date."' 
    and `qc_status` != 'Fail' 
GROUP BY 
    consultant 
ORDER BY 
    total DESC, 
    life DESC, 
    funeral DESC
于 2013-06-17T07:30:24.187 に答える