在某些Microsoft Access查詢上,我收到以下消息:操作必須使用可更新的查詢。(錯誤3073)。我通過使用臨時表來解決它,但是我想知道是否有更好的方法。所有涉及的表都有一個主鍵。這是代碼:UPDATE CLOG SET CLOG.NEXTDUE = ( SELECT H1.paidthru FROM CTRHIST as H1 WHERE H1.ACCT = clog.ACCT AND H1.SEQNO = ( SELECT MAX(SEQNO) FROM CTRHIST WHERE CTRHIST.ACCT = Clog.ACCT AND CTRHIST.AMTPAID > 0 AND CTRHIST.DATEPAID < CLOG.UPDATED_ON ))WHERE CLOG.NEXTDUE IS NULL;
3 回答

鳳凰求蠱
TA貢獻1825條經驗 獲得超4個贊
從Jet 4開始,所有與匯總數據的SQL語句聯接的查詢都是不可更新的。您沒有使用JOIN,但是WHERE子句與聯接完全等效,因此,Jet查詢優化器對待聯接的方式與對待聯接的方式相同。
恐怕如果沒有臨時表,您會很不走運,盡管也許有人比我更了解Jet SQL,但我想不出一種解決方法。
順便說一句,它可能在Jet 3.5(Access 97)中是可更新的,因為很多查詢都是可更新的,然后在升級到Jet 4時變得不可更新。
添加回答
舉報
0/150
提交
取消