1

这是我第一次在这里发帖,但是这个网站过去为我提供了很多答案,所以我会试一试。

背景信息:我使用的是 Acces 2013,通过 ODBC 3.51 连接到 MySQL 数据库。

我正忙于从呼叫详细信息记录中提取报告,即我想概述不同员工在不同电话线路上接听和拨打电话的时间。

我已经发现我不能制作两个单独的 TRANSFORM...PIVOT 查询和 UNION 那些。这是有道理的,因为代码无法知道我的 2 个查询将返回相同数量的枢轴。

是否有可能扭转这个过程?(首先在 UNION 中收集您需要的数据,然后转换数据)。

我创建了以下联合查询收集相关数据:

(SELECT dbo_IpPbxCDR.DestinationName AS [Name], Sum(DateDiff('n',[dbo_IpPbxCDR.starttime],[dbo_IpPbxCDR.endtime])) AS [Called Time], IIf((dbo_IpPbxCDR.CalledName Like "*0900*") OR (dbo_IpPbxCDR_1.CalledName like "*0900*"), "0900", "abo") AS [Called Line]
FROM (dbo_IpPbxCDR AS dbo_IpPbxCDR_1 RIGHT JOIN dbo_IpPbxCDR ON dbo_IpPbxCDR_1.CallId = dbo_IpPbxCDR.TransferredCallId2)
WHERE <Where clause relevant to the data I want. It’s pretty long so I omitted it>
GROUP BY dbo_IpPbxCDR.DestinationName, IIf((dbo_IpPbxCDR.CalledName Like "*0900*") OR (dbo_IpPbxCDR_1.CalledName like "*0900*"), "0900", "abo"))
UNION
(SELECT dbo_IpPbxCDR.OriginationName AS [Name], Sum(DateDiff('n',[dbo_IpPbxCDR.starttime],[dbo_IpPbxCDR.endtime])) AS [Called Time], 'uit' AS [Called Line]
FROM dbo_IpPbxCDR
WHERE <Where clause relevant to the data I want. It’s pretty long so I omitted it>
GROUP BY dbo_IpPbxCDR.OriginationName)

我正在尝试进行转换,Sum(DateDiff('n',[dbo_IpPbxCDR.starttime],[dbo_IpPbxCDR.endtime]))以便获得与某些月份相关的数据pivot Month([dbo_IpPbxCDR.starttime])

我会很感激我能得到的任何帮助/建议!

4

0 回答 0