Access: Delete Query запрашивает параметр - PullRequest
0 голосов
/ 03 мая 2020

Я пытаюсь выполнить следующий запрос DELETE:

DELETE T_PROPOS.*, T_PROPOS.Projekt, T_PROPOS.[PSP-Element], T_PROPOS.Typ, T_PROPOS.Jahr, T_PROPOS.Wert, T_PROPOS.Datum
FROM T_PROPOS
WHERE NOT (((T_PROPOS.Projekt)=[T_PROPOS_Ohne_Duplikate].[Projekt]) AND ((T_PROPOS.[PSP-Element])=[T_PROPOS_Ohne_Duplikate].[PSP-Element]) AND ((T_PROPOS.Typ)=[T_PROPOS_Duplikate_löschen].[Typ]) AND ((T_PROPOS.Jahr)=[T_PROPOS_Duplikate_löschen].[Jahr]) AND ((T_PROPOS.Wert)=[T_PROPOS_Duplikate_löschen].[Wert]) AND ((T_PROPOS.Datum)=[T_PROPOS_Duplikate_löschen].[Datum]));

Но когда я запускаю запрос, Access запрашивает параметры каждого условия. Поэтому мне нужно дать значения [T_PROPOS_Ohne_Duplikate].[Projekt] et c. Но я хочу удалить все строки из T_PROPOS, которых нет в T_PROPOS_Ohne_Duplikate. Как я могу заставить Access сравнить две таблицы?

Ответы [ 2 ]

0 голосов
/ 03 мая 2020

Поскольку вы ссылаетесь на столбцы из двух таблиц, на которые нет ссылок, рассмотрим два предложения NOT EXISTS. Также DELETE * FROM эквивалентно DELETE FROM в MS Access.

DELETE
FROM T_PROPOS main
WHERE NOT EXISTS
   (SELECT 1 FROM [T_PROPOS_Ohne_Duplikate] o_dup
    WHERE main.Projekt = o_dup.[Projekt]
      AND main.[PSP-Element] = o_dup.[PSP-Element])

  AND NOT EXISTS    
   (SELECT 1 FROM [T_PROPOS_Duplikate_löschen] l_dup
    WHERE main.Typ = l_dup.[Typ]
      AND main.Jahr = l_dup.[Jahr]
      AND main.Wert = l_dup.[Wert]
      AND main.Datum = l_dup.[Datum]);
0 голосов
/ 03 мая 2020


Привет,

Используйте этот простой запрос ниже. Не уверен, работает ли он в Access.

delete from T_PROPOS where Projekt not in 
(select Projekt from T_PROPOS_Ohne_Duplikate);

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...