我有一个非常密集的SQL查询在php脚本中运行,它基本上汇总了我们每个员工在电话上的数字,创建了一个CSV,然后通过PHP邮件程序将其附加到电子邮件中。
这工作正常,但我的任务是将其变成一份完整的报告(即excel报告,格式化等),每个员工的总数。现在它基本上只有每个员工的行项目,因此员工A可能有32个记录,然后它直接进入员工B.我需要更改它,以便在员工A的记录结束时,它插入一个总计值的行对于每一列。
我想我可能只是使用PHP来做这个,因为这是在PHP脚本中,但我不知道在这里做到这一点的最佳方法,我希望有一些指导,我可以应用于其余的查询。
我认为为字段/列创建一个变量可能会很好,这样我就可以用这种方式创建一个SUM,但是我对此很满意。
这是脚本的SQL部分:
$result = mysqli_query($conn2,
"SELECT
FirstN
, LastN
, Extension
, Recieved
, Recieved_Known
, Outbound
, Outbound_Known
, Missed_No_VM
, Missed_VM
, Missed_Known
, Calling_Number
, Called_Number
, Start_Time
, End_Time
, Talk_Time_Seconds
, Hold_Time_Seconds
FROM (
SELECT distinct
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 Recieved_Known
, CASE WHEN LEGTYPE1 = 1 then 'x' ELSE '' end AS Outbound
, case when FINALLYCALLEDPARTYNO = kn.long_number then 'x' ELSE '' end as Outbound_Known
, case when legtype1 = 2 and answered = 0 and finallycalledpartyno not like '%oice%' then 'x' ELSE '' end as Missed_No_VM
, case when finallycalledpartyno like '%oice%' then 'x' ELSE '' end as Missed_VM
, case when legtype1 = 2 and ANSWERED = 0 and CALLINGPARTYNO = k.phone_number then 'x' ELSE '' end as
Missed_Known
, a.CALLINGPARTYNO AS Calling_Number
, a.FINALLYCALLEDPARTYNO AS Called_Number
, b.starttime as Start_Time
, b.endtime as End_Time
, b.duration as Talk_Time_Seconds
, a.holdtimesecs as Hold_Time_Seconds
FROM ambition.session a
INNER JOIN ambition.callsummary b ON a.NOTABLECALLID = b.NOTABLECALLID
right join jackson_id.users c on a.callingpartyno = c.extension or a.finallycalledpartyno = c.extension
LEFT JOIN ambition.known_numbers k ON a.callingpartyno = k.phone_number
left join ambition.known_numbers kn on a.finallycalledpartyno = kn.long_number
WHERE a.ts >= '2017-12-07' -- curdate()
and(a.CALLINGPARTYNO in (select extension from ambition.ambition_users) OR a.finallycalledpartyno IN (select extension from ambition.ambition_users))
) x
order by extension;") or die(mysqli_error( $conn2));
正如您所看到的,它从代理7200到代理7206.但是我需要在每列中插入一行总计那些x的行。
试试https://github.com/PHPOffice/PHPExcel库,它非常适合创建Excel文件,你可以添加公式来进行加法。希望有所帮助!