我有一个表格,用于跟踪呼叫中心和呼叫者之间的通信。它具有多个字段和一个备注字段,可以在其中输入注释。我还有一个自动化过程,该过程与客户端传输数据,如果进行了地址更新,它将添加一个通讯说明,说明该地址是什么以及更改原因。我遇到的问题是我们从两个来源获取数据,很多时候这两个来源都包含同一个人。通常,两个地址之间的差异很小(街道与街道),这导致每个月创建多个记录。负责此客户的分析师有一个查询,可查看存在多个更改(特别是由自动普查创建的更改)的记录,以便他们可以查看哪些重复和合法。我希望他们能够选中一个框或以某种方式将这些记录标记为要删除。
问题在于,生成的查询不可编辑,因为帮助提要查询的查询使用了count函数,因此它不一定与表一对一的关系。这是第一个查询:
SELECT tblCommunications.RecordID, Count(tblCommunications.RecordID) AS CountOfRecordID
FROM tblCommunications
WHERE (((tblCommunications.CallComments) Like "*Updated address via Census feed.*"))
GROUP BY tblCommunications.RecordID;
第二个查询对第一个查询执行LEFT JOIN
,并仅显示CountofRecordID
大于4的那些记录的表数据。但是,此最终列表无法编辑,因此该复选框我添加了标记为删除的对象,因此无法检查。
有人知道我该如何做这项工作,或者对如何进行这项工作有更好的主意吗?
谢谢!
答案 0 :(得分:0)
与其在LEFT JOIN
中使用聚合查询,不如在IN
条件中使用WHERE
子句。下面应该可以更新。请注意查询包含表别名,以避免重复长表名。此外,还集成了HAVING
子句。根据需要进行调整。
SELECT t.RecordID, t.CallDate, t.Analyst, t.CallComments
FROM tblCommunications AS t
WHERE t.RecordID ID IN
(SELECT c.RecordID
FROM tblCommunications AS c
WHERE (((c.CallComments) LIKE "*Updated address via Census feed.*"))
GROUP BY c.RecordID
HAVING COUNT(c.RecordID) > 4)