использование доступа к SQL для выполнения INSERT INTO (агрегатная функция) - PullRequest
0 голосов

вот мой код:

insert into archive from temp where temp.field6>archive.field6

Я хотел бы вставить всю строку в таблицу archive из таблицы temp, где одно поле больше другого.

что не так с моим синтаксисом?это дает мне ERROR ON INSERT InTO

edit:

вот что у меня есть до сих пор:

INSERT INTO archive
SELECT temp.*
FROM temp, archive
WHERE temp.field6>max(archive.field6);

извините, я был совершенно не прав с первым запросом

обратите внимание на новый MAX

Я получаю сообщение об ошибке, потому что я не могу использовать агрегатную функцию здесь.

Ответы [ 2 ]

3 голосов
/ 31 мая 2011
INSERT INTO archive
SELECT temp.*
FROM temp
WHERE temp.field6>(SELECT max(archive.field6) FROM archive);
1 голос
/ 31 мая 2011

Согласно MSDN вам необходимо использовать более полный синтаксис с SELECT. Например:

INSERT INTO archive SELECT temp.* FROM temp, archive 
GROUP BY temp.field6 HAVING temp.field6 > max(archive.field6);
...