2011-05-31 75 views
0

這裏是我的代碼:使用訪問SQL做的INSERT INTO(聚合函數)

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

我想整個行從表temp其中一個領域是大於另一個插入表archive

我的語法有什麼問題?它給我ERROR ON INSERT InTO

編輯:

這裏是我到目前爲止有:

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

對不起,我是完全錯誤的第一個查詢

請注意新的MAX

我得到一個錯誤,因爲我不能在這裏使用聚合函數。

+0

我甚至不知道從哪裏開始修復這一點。您缺少一個select(如果要進行比較,需要包含臨時表和歸檔表)。也許你可以更具體地說明你正在努力完成什麼,以及你已經做了什麼來嘗試自己弄清楚。 – lambacck 2011-05-31 02:14:58

+0

@lamb香港專業教育學院更新感謝喲ufor你的幫助 – 2011-05-31 02:28:37

回答

3
INSERT INTO archive 
SELECT temp.* 
FROM temp 
WHERE temp.field6>(SELECT max(archive.field6) FROM archive); 
+1

YEAH WHOS你爸爸!!!!!!!!!!!!!!!!!!!! !!!!!!!! – 2011-05-31 02:36:21

1

根據MSDN,您需要使用更全面的SELECT語法。例如:

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

謝謝香港專業教育學院做正是,但它要求我爲temp.fiel6值和另一個 – 2011-05-31 02:07:10

+0

@I__:是的,更新的答案,但我不知道這是什麼原因你要。我認爲檔案和temp有相同的模式。否則,您需要爲插入列表指定列列表並選擇列表。 – 2011-05-31 02:17:06

+0

再次感謝你。您的查詢不起作用。它確實添加了行但方式太多。我叮叮的有一個錯誤。是兩個表具有相同的模式 – 2011-05-31 02:22:08