2016-02-16 3 views
1

Я хочу вставить в мои tbl_Cumulative любые новые записи, которые появляются в tbl_Daily. Мой tbl_Cumulative является исчерпывающим из всех исторических записей tbl_Daily. tbl_Daily обновляется каждый день.Как вставить новые записи из одной таблицы в другую таблицу

Мой INSERT INTO заявление выглядит следующим образом:

INSERT INTO tbl_Cumulative 
SELECT * 
FROM tbl_Daily 
LEFT JOIN tbl_Cumulative 
ON tbl_Cumulative.ID= tbl_Daily.ID 
WHERE tbl_Cumulative.ID IS NULL 

Я первый присоединиться таблицы, основанные на ID и там, где нет совпадения с tbl_Cumulative (он же запись нового), а затем добавить его в tbl_Cumulative. Однако, я в конечном итоге получить ошибку ниже:

Duplicate output destination 'ID'.

Я знаю, что есть дублирующие поля для ID потому tbl_Cumulative и tbl_Daily имеют те же столбцы. Как я могу запросить мой SQL, чтобы все еще соответствовать новым запросам и добавлять их к tbl_Cumulative?

+0

Расскажите ДБ двигатель, какие поля вы хотите, чтобы рассмотреть следующие вопросы: 'INSERT INTO tbl_Cumulative () ВЫБРАТЬ ' – HansUp

+0

HansUp Я надеялся избежать ручного ввода каждого поля как есть слишком много, чтобы сделать вручную , Есть ли способ обойти это? –

+0

Да, постройте свой запрос в конструкторе запросов Access. Затем вместо ввода имен полей вам нужно только выбрать их в сетке проекта. – HansUp

ответ

1

SELECT поля только из одной таблицы (tbl_Daily.*), а не все поля, возвращаемые в набор результатов SELECT *.

INSERT INTO tbl_Cumulative 
SELECT tbl_Daily.* 
FROM tbl_Daily 
LEFT JOIN tbl_Cumulative 
ON tbl_Cumulative.ID= tbl_Daily.ID 
WHERE tbl_Cumulative.ID IS NULL 
Смежные вопросы