私の人生が上部で間違ってカウントされているが、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>";
}