访问查询不允许编辑数据

问题描述 投票:1回答:1

我有一个表,用于跟踪呼叫中心和呼叫者之间的通信。它具有多个字段和一个备注字段,可以在其中输入注释。我还有一个自动化过程,该过程与客户端传输数据,并且如果进行了地址更新,则会添加一个通讯说明,说明该地址是什么以及更改原因。我遇到的问题是我们从两个来源获取数据,很多时候这两个来源都包含同一个人。通常,两个地址之间的差异很小(街道与街道),这导致每个月创建多个记录。负责此客户的分析师有一个查询,可查看存在多个更改(特别是由自动普查创建的更改)的记录,以便他们可以看到哪些重复和哪些合法。我希望他们能够选中一个框或以某种方式将这些记录标记为要删除。

问题在于,生成的查询不可编辑,因为帮助提要查询的查询使用了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的那些记录的表数据。但是,此最终列表无法编辑,因此我添加了用于标记的复选框无法删除它们。

有人知道我如何进行这项工作,或者对如何进行这项工作有更好的主意吗?

谢谢!

sql ms-access one-to-many
1个回答
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, COUNT(c.RecordID) AS CountOfRecordID
   FROM tblCommunications AS c
   WHERE (((c.CallComments) LIKE "*Updated address via Census feed.*"))
   GROUP BY c.RecordID
   HAVING COUNT(c.RecordID) > 4)
© www.soinside.com 2019 - 2024. All rights reserved.