ShoreTel MySQL 查询中
ShoreTel MySQL Querying
背景资料:
我公司使用 ShoreTel 提供我们的 VoIP 服务;虽然他们的罐头报告很棒,但他们有我们不需要的信息,而且演示文稿也不是最容易使用数据的。我需要针对所有销售电话创建一份报告,最终合并 ShoreTel 提供的两个预制报告——个人和集团报告;合并这两个报告的原因是要有一个 Pivot Table,销售经理可以查看并快速消化每个 Salesperson/groups 呼叫。我在 MySQL Workbench 中对数据库进行了逆向工程,并找到了所有 table 和列,它们应该 return 我想要的特定数据。下面列出的三个 table 和列是生成我希望在我的 Report/Pivot Table:
中使用的数据的那些
agentactivity | Connect | Call
------------- --------- ------
agentactivity.StartTimeStamp | connect.PartyTable | call.CallType
agentactivity.EndTimeStamp | connect.ConnectReason | call.DialedNumber
agentactivity.AgentDN | connect.PartyID | call.CallerID
agentactivity.AgentFirstName | connect.PartyIDName | call.Duration
agentactivity.AgentLastName | connect.Duration | call.Extension
agentactivity.State | connect.TalkTimeSeconds |
agentactivity.WorkgroupDN | |
agentactivity.WorkgroupName | |
由于我是使用 MySQL 的新手,我需要帮助的是构建一个查询,我可以用它来挖掘我想要的数据;我可以构建单独的查询来获取部分数据(如下所示),但是当涉及到使用两个(更不用说三个)table 时,这就是一切开始崩溃的地方。我尝试了自己的查询,但我想确保这在语法和可用性方面是正确的。如上所述,这样做的目的是使用数据库中的所有必需信息创建一个数据透视表 Table。
之前read/attempted:
<-Helped a little but not a lot; still confused.
<--Provide more information; was able to build off this one on my own, only able to use for single results.
<--Was not what I needed for my task.
https://community.spiceworks.com/how_to/69423-shoretel-call-detail-record-lookup <--Most helpful yet and I tried customizing this to suit my needs; failed.
https://www.experts-exchange.com/questions/28286779/Shoretel-SQL-query-in-Excel.html <--Was not useful in anyway as I need the correct query to dump data into Excel.
http://dev.mysql.com/doc/refman/5.7/en/join.html <--This is where I started regarding 'Joins' for tables but it starts to get confusing.
我对个人数据return的查询(老实说,这些不是我最初的查询,我根据自己的需要定制了它们):
SELECT PartyIDName,GroupID,ConnectTime,DisconnectTime,ConnectReason
FROM shorewarecdrarchive.`connect`
WHERE PartyType=12;
SELECT StartTime,DialedNumber,CallerID,EndTime,Extension,CallType
FROM shorewarecdrarchive.`call`
WHERE Extension=6333 AND date(StartTime) BETWEEN '2016-08-01' AND '2016-08-16' AND CallType=3;
SELECT ID, StartTime, StartTimeMS, EndTime, EndTimeMS, TIMEDIFF(EndTime,StartTime) AS `CallDuration`, LongDistance, CallType, CallerID, DialedNumber, Extension
FROM shorewarecdrarchive.`call`
WHERE Extension=6317 DATE(StartTime) = '2016-09-01' AND TIME(StartTime) >= '00:00:00' AND TIME(StartTime) <= '23:59:59' ORDER BY CallType,StartTime;
我的尝试 at the query using more than 1 table:
SELECT
call.CallType,
call.DialedNumber,
call.CallerID,
call.Duration,
connect.PartyTable,
connect.ConnectReason,
connect.PartyID,
connect.PartyIDName,
connect.PartyIDLastName,
connect.Duration,
connect.TalkTimeSeconds,
agentactivity.StartTimeStamp,
agentactivity.EndTimeStamp,
agentactivity.AgentDN,
agentactivity.AgentFirstName,
agentactivity.AgentLastName,
agentactivity.State,
agentactivity.WorkgroupDN,
agentactivity.WorkgroupName
FROM
shorewarecdrarchive.`call`
INNER JOIN shorewarecdrarchive.`connect`
ON connect.CallTableID=call.ID
INNER JOIN shorewarecdrarchive.'agentactivity'
ON call.Extension=agentactivity.AgentDN
WHERE
TIME(StartTime) >= '00:00:00'
AND TIME(StartTime) <= '23:59:59' BETWEEN '2016-09-01' AND '2016-09-16'
ORDER BY
CallType,StartTime;
非常感谢对此的任何和所有帮助!
感谢 mcNets 在我遇到的这个问题上提供的帮助。以下查询有效,可用于挖掘罐装 个人和小组报告.
中的所有数据
SELECT
call.CallType,
call.DialedNumber,
call.CallerID,
connect.PartyType,
connect.ConnectReason,
connect.PartyID,
connect.PartyIDName,
connect.PartyIDLastName,
connect.TalkTimeSeconds,
agentactivity.StartTimeStamp,
agentactivity.EndTimeStamp,
agentactivity.AgentDN,
agentactivity.AgentFirstName,
agentactivity.AgentLastName,
agentactivity.State,
agentactivity.WorkgroupDN,
agentactivity.WorkgroupName
FROM
shorewarecdrarchive.call
LEFT JOIN
shorewarecdrarchive.connect ON connect.CallTableID = call.ID
LEFT JOIN
shorewarecdrarchive.agentactivity ON call.Extension = agentactivity.AgentDN
WHERE
StartTime >= '2016-09-01 00:00:00'
AND StartTime < '2016-09-17 00:00:00';
再次感谢您的帮助。
背景资料:
我公司使用 ShoreTel 提供我们的 VoIP 服务;虽然他们的罐头报告很棒,但他们有我们不需要的信息,而且演示文稿也不是最容易使用数据的。我需要针对所有销售电话创建一份报告,最终合并 ShoreTel 提供的两个预制报告——个人和集团报告;合并这两个报告的原因是要有一个 Pivot Table,销售经理可以查看并快速消化每个 Salesperson/groups 呼叫。我在 MySQL Workbench 中对数据库进行了逆向工程,并找到了所有 table 和列,它们应该 return 我想要的特定数据。下面列出的三个 table 和列是生成我希望在我的 Report/Pivot Table:
中使用的数据的那些agentactivity | Connect | Call
------------- --------- ------
agentactivity.StartTimeStamp | connect.PartyTable | call.CallType
agentactivity.EndTimeStamp | connect.ConnectReason | call.DialedNumber
agentactivity.AgentDN | connect.PartyID | call.CallerID
agentactivity.AgentFirstName | connect.PartyIDName | call.Duration
agentactivity.AgentLastName | connect.Duration | call.Extension
agentactivity.State | connect.TalkTimeSeconds |
agentactivity.WorkgroupDN | |
agentactivity.WorkgroupName | |
由于我是使用 MySQL 的新手,我需要帮助的是构建一个查询,我可以用它来挖掘我想要的数据;我可以构建单独的查询来获取部分数据(如下所示),但是当涉及到使用两个(更不用说三个)table 时,这就是一切开始崩溃的地方。我尝试了自己的查询,但我想确保这在语法和可用性方面是正确的。如上所述,这样做的目的是使用数据库中的所有必需信息创建一个数据透视表 Table。
之前read/attempted:
<-Helped a little but not a lot; still confused.
<--Provide more information; was able to build off this one on my own, only able to use for single results.
<--Was not what I needed for my task.
https://community.spiceworks.com/how_to/69423-shoretel-call-detail-record-lookup <--Most helpful yet and I tried customizing this to suit my needs; failed.
https://www.experts-exchange.com/questions/28286779/Shoretel-SQL-query-in-Excel.html <--Was not useful in anyway as I need the correct query to dump data into Excel.
http://dev.mysql.com/doc/refman/5.7/en/join.html <--This is where I started regarding 'Joins' for tables but it starts to get confusing.
我对个人数据return的查询(老实说,这些不是我最初的查询,我根据自己的需要定制了它们):
SELECT PartyIDName,GroupID,ConnectTime,DisconnectTime,ConnectReason
FROM shorewarecdrarchive.`connect`
WHERE PartyType=12;
SELECT StartTime,DialedNumber,CallerID,EndTime,Extension,CallType
FROM shorewarecdrarchive.`call`
WHERE Extension=6333 AND date(StartTime) BETWEEN '2016-08-01' AND '2016-08-16' AND CallType=3;
SELECT ID, StartTime, StartTimeMS, EndTime, EndTimeMS, TIMEDIFF(EndTime,StartTime) AS `CallDuration`, LongDistance, CallType, CallerID, DialedNumber, Extension
FROM shorewarecdrarchive.`call`
WHERE Extension=6317 DATE(StartTime) = '2016-09-01' AND TIME(StartTime) >= '00:00:00' AND TIME(StartTime) <= '23:59:59' ORDER BY CallType,StartTime;
我的尝试 at the query using more than 1 table:
SELECT
call.CallType,
call.DialedNumber,
call.CallerID,
call.Duration,
connect.PartyTable,
connect.ConnectReason,
connect.PartyID,
connect.PartyIDName,
connect.PartyIDLastName,
connect.Duration,
connect.TalkTimeSeconds,
agentactivity.StartTimeStamp,
agentactivity.EndTimeStamp,
agentactivity.AgentDN,
agentactivity.AgentFirstName,
agentactivity.AgentLastName,
agentactivity.State,
agentactivity.WorkgroupDN,
agentactivity.WorkgroupName
FROM
shorewarecdrarchive.`call`
INNER JOIN shorewarecdrarchive.`connect`
ON connect.CallTableID=call.ID
INNER JOIN shorewarecdrarchive.'agentactivity'
ON call.Extension=agentactivity.AgentDN
WHERE
TIME(StartTime) >= '00:00:00'
AND TIME(StartTime) <= '23:59:59' BETWEEN '2016-09-01' AND '2016-09-16'
ORDER BY
CallType,StartTime;
非常感谢对此的任何和所有帮助!
感谢 mcNets 在我遇到的这个问题上提供的帮助。以下查询有效,可用于挖掘罐装 个人和小组报告.
中的所有数据SELECT
call.CallType,
call.DialedNumber,
call.CallerID,
connect.PartyType,
connect.ConnectReason,
connect.PartyID,
connect.PartyIDName,
connect.PartyIDLastName,
connect.TalkTimeSeconds,
agentactivity.StartTimeStamp,
agentactivity.EndTimeStamp,
agentactivity.AgentDN,
agentactivity.AgentFirstName,
agentactivity.AgentLastName,
agentactivity.State,
agentactivity.WorkgroupDN,
agentactivity.WorkgroupName
FROM
shorewarecdrarchive.call
LEFT JOIN
shorewarecdrarchive.connect ON connect.CallTableID = call.ID
LEFT JOIN
shorewarecdrarchive.agentactivity ON call.Extension = agentactivity.AgentDN
WHERE
StartTime >= '2016-09-01 00:00:00'
AND StartTime < '2016-09-17 00:00:00';
再次感谢您的帮助。