在MS-Access中,我试图连接三个表。第三个表是从旨在汇总日期的子查询中创建的,因为与第一个表对齐时,我不想每天都有多个记录。
当我输入左联接子查询时,出现此错误:
该字段太小,无法接受您尝试处理的数据量 加。尝试插入或粘贴较少的数据。
我已经单独运行了子查询,它返回了大约19,000条记录。这比实际表小得多。如果我使用实际表,则查询工作正常,但当第三张表上每天有多个条目时,它会包含重复记录。
SELECT
SUM([ACD Calls]),
(SUM([Avg ACD Time]*[ACD Calls])/SUM([ACD Calls]))/86400,
(SUM([Avg ACW Time]*[ACD Calls])/SUM([ACD Calls]))/86400,
((SUM([Hold Time])/SUM([ACD Calls])))/86400,
((SUM([Avg ACD Time]*[ACD Calls])
+ SUM([Avg ACW Time]*[ACD Calls]))/SUM([ACD Calls]))/86400,
SUM([Time Adhering])/SUM([Total Time Scheduled]),
SUM([SS])/SUM([SO])
FROM
(
(
[GroupSumDaily]
LEFT JOIN Adherence_WKLY ON (GroupSumDaily.[Day] = Adherence_WKLY.[Day])
AND (GroupSumDaily.Agent = Adherence_WKLY.Agent)
)
LEFT JOIN
(
SELECT Evaluation_List.[Agent],
Evaluation_List.Recording_Date,
SUM(Evaluation_List.[Score]) as SS,
SUM(Evaluation_List.[Out of]) as SO
From Evaluation_List
Group By Evaluation_List.[Recording_Date],
Evaluation_list.[Agent]
)
as Evals ON (GroupSumDaily.[Day] = Evals.[Recording_Date])
AND (GroupSumDaily.Agent = Evals.Agent)
)
WHERE
(
[GroupSumDaily].[Agent] = "LastName FirstName"
AND Month([GroupSumDaily].[Day]) =1
AND Year([GroupSumDaily].[Day]) =2018
AND [GroupSumDaily].[Day] > #2/23/2015#
)
答案 0 :(得分:0)
您似乎没有要查询的“主”表。
我会尝试删除FROM语句后的前两个开括号(及其等效的右括号)。
如果仍不能解决问题,请尝试将整个子查询移到单独的查询中,然后从结果中进行选择...
答案 1 :(得分:0)
原来,子查询字段自动限制为50个字符,这是问题的根源。当我将返回值限制为LEFT([Agent],50)时,错误消失了。有没有一种方法可以设置字符长度是子查询字段?
另一个奇怪的事情是,我的所有字段实际上都不超过50个字符...当我运行Select [Agent]时LEN([Agent])> = 50,它仅返回1条记录,这是“底部的新记录。我确认它完全空白,没有空格或制表符。非常令人困惑。