私はMySQLクエリを実行し、結果をCSVに書き込みますが、正常に動作していますが、CSVにも行その数を合計するエージェントの「グループ」ごとにPHPのスクリプトからSQLへのCSV、グループの複数の「合計」行
電流出力は次のようになります。
だから、彼らはここで拡張されたものです見ることができます。だから私は7200のための私の出力は、たとえば、になりたい:
7200 totals: 1 | 0 | 1 | 0 | 2
を基本的にはちょうど私が持っているので、私は約13行を持っているでしょう意味し、各拡張のXの数を合計行を追加しますフルレポートの13のエージェントエクステンション。
私はSQLで何らかの方法でこれを行うことができるのか、CSVに書き込むのか、またはPHP自体でこれを行うことはできません。どちらが最善でもっと合理的であるか。ここで
は、クエリのためのPHPの変数です:「合計」行
$result = mysqli_query($conn2,
"SELECT firstn
, lastn
, extension
, Recieved
, RecievedKnown
, Outbound
, outboundKnown
, Missed
, MissedKnown
, CallingNumber
, CalledNumber
, starttime
, endtime
, duration
, HOLDTIMESECS
, TERMINATIONREASONCODE
FROM (
SELECT firstn
, lastn
, c.extension
,CASE WHEN LEGTYPE1 = 2 AND ANSWERED = 1 THEN 'x' ELSE '' END AS Recieved
, case when LEGTYPE1 = 2 and answered = 1 and CALLINGPARTYNO = k.phone_number then 'x' ELSE '' end as RecievedKnown
, CASE WHEN ANSWERED = 1 AND LEGTYPE1 = 1 then 'x' ELSE '' end AS Outbound
, case when LEGTYPE1 = 1 and FINALLYCALLEDPARTYNO = k.phone_number then 'x' ELSE '' end as outboundKnown
, case when Answered = 0 then 'x' ELSE '' end as Missed
, case when ANSWERED = 0 and CALLINGPARTYNO = k.phone_number then 'x' ELSE '' end as MissedKnown
, a.CALLINGPARTYNO AS CallingNumber
, a.FINALLYCALLEDPARTYNO AS CalledNumber
, b.starttime as starttime
, b.endtime as endtime
, b.duration
, a.holdtimesecs
, a.terminationreasoncode
FROM test.session a
INNER JOIN test.callsummary b ON a.NOTABLECALLID = b.NOTABLECALLID
right join test2.users c on a.callingpartyno = c.extension or a.finallycalledpartyno = c.extension
LEFT JOIN test.known_numbers k ON a.callingpartyno = k.phone_number
WHERE a.ts >= curdate()
and(a.CALLINGPARTYNO in (select extension from test.ambition_users) OR a.finallycalledpartyno IN (select extension from test.ambition_users))
) x
ORDER BY extension;") or die(mysqli_error($conn2));
if (!$result) die('Couldn\'t fetch records');
$num_fields = mysqli_num_fields($result);
$headers = array();
while ($fieldinfo = mysqli_fetch_field($result)) {
$headers[] = $fieldinfo->name;
}
$fp = fopen('test.csv', 'w');
if ($fp && $result) {
fputcsv($fp, $headers);
while ($row = $result->fetch_array(MYSQLI_NUM)) {
fputcsv($fp, array_values($row));
}
fclose($fp);
}
$file = "test.csv";
「SUM(CASE ...)」を使ってみてください。 「x」と「 '」をそれぞれ「1」と「0」に変更します。 –
いいえ、SQLサーバーではありません。実際にはPHPスクリプトで動作しています –