CHill60
Если у вас все еще есть проблемы с этим и вам нужна помощь, то вам нужно дать нам гораздо больше информации. Например: какую базу данных вы используете (похоже на доступ?); каковы структуры таблиц; что вы хотите удалить и т. д. Действительно хорошей отправной точкой является предоставление некоторых выборочных данных и некоторых ожидаемых результатов.
Также прочтите следующее:
Некоторые рекомендации по размещению вопросов на форумах[^]
Идея статьи: Как не задать вопрос[^]
А пока: это исправит вашу попытку
SELECT * INTO EmpRetirement
FROM EMP
WHERE EMP.JopEnd<=Now()
ORDER BY Emp.ID, Emp.Agenow;
Вам понадобится 2-й запрос для таблицы выхода на пенсию..
SELECT * INTO Retirement FROM EMP
WHERE EMP.JopEnd<=Now()
ORDER BY Emp.ID, Emp.Agenow;
Теперь некоторые вещи, чтобы рассмотреть:
1. Это плохая практика иметь несколько таблиц с одной и той же схемой. Я не собираюсь вдаваться здесь в долгие рассуждения - исследования
"Методы проектирования баз данных"[
^]
2. Если эти таблицы уже существуют и вы не используете Access, то запросы завершатся неудачей - вам нужно будет использовать
INSERT INTO EmpRetirement
SELECT * FROM EMP …
Если вы используете Access, вам будет предложено и сказано, что таблица будет перезаписана - то есть все существующие данные будут потеряны.
3. Это также плохая практика для использования
SELECT *
- перечислите столбцы, которые вы хотите явно. Что делать, если кто - то добавит столбец в EMP, но не в EmpRetirement-ваш код немедленно потерпит неудачу. Именно поэтому @DerekTP123 упомянул столбцы auto-number/auto-increment - если и EMP, и EmpRetirement имеют столбец autonumber, то ваш запрос завершится неудачей.
Заключительная часть заключается в том, что вы, по-видимому, хотите удалить материал, который был скопирован. Это было бы ...
DELETE *
FROM EMP
WHERE EMP.JopEnd<=Now();
Однако я советую вам проверить, что вставка прошла успешно, прежде чем удалять какие-либо данные