Запрос доступа не позволяет редактировать данные - PullRequest
1 голос
/ 14 октября 2019

У меня есть таблица, которая отслеживает связь между колл-центром и абонентами. Он имеет ряд полей и поле для заметок, где можно вводить заметки. У меня также есть автоматизированный процесс, который передает данные с клиентом, и, если обновление адреса сделано, он добавляет примечание связи, указывающее, что адрес был, и почему он был изменен. У меня проблема в том, что мы получаем данные из двух источников, и во многих случаях это одни и те же люди из обоих источников. Часто между двумя адресами есть только небольшая разница (улица против улицы), и это приводит к тому, что каждый месяц создается несколько записей. Аналитик, отвечающий за этого клиента, имеет запрос для просмотра записей, в которых существует несколько изменений (в частности, которые были созданы с помощью автоматической переписи), чтобы они могли видеть, какие являются дубликатами, а какие законными. Я хочу, чтобы они могли установить флажок или каким-либо образом пометить эти записи как удаленные.

Проблема заключается в том, что полученный запрос не редактируется, так как запрос, который помогает кормить его, использует функцию 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. Однако этот окончательный списокне может быть отредактировано, поэтому флажок, который я добавил, чтобы пометить их для удаления, не может быть установлен.

Кто-нибудь знает, как я могу сделать эту работу, или, возможно, есть лучшее представление о том, как подойти к этому?

Спасибо!

1 Ответ

0 голосов
/ 14 октября 2019

Вместо использования агрегатного запроса в 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)
...