[英]How to change column field from the table by using joins in MS ACCESS?
好的,我對此問題進行了很長時間的研究,但無法獲得答案,所以希望您能提供幫助:)
問題:
當我在Access中使用此sql查詢時:
SELECT PARTNERI.SIFRA, Sum(FAKTURE.ZA_UPLATU)-Sum(UPLATEF.IZNOS) + SUM(PARTNERI.DUGUJE)
FROM ((UPLATEF RIGHT JOIN PARTNERI ON UPLATEF.SIFRA = PARTNERI.SIFRA) LEFT JOIN FAKTURE ON PARTNERI.SIFRA = FAKTURE.S_KUP)
GROUP BY PARTNERI.SIFRA;
我得到一個結果集,這很好,但是...我想更新PARTNERI表中的列,我這樣寫:
UPDATE PARTNERI SET NG_DUGUJE_DOB =
SELECT Sum(FAKTURE.ZA_UPLATU)-Sum(UPLATEF.IZNOS) + SUM(PARTNERI.DUGUJE)
FROM ((UPLATEF RIGHT JOIN PARTNERI ON UPLATEF.SIFRA = PARTNERI.SIFRA) LEFT JOIN FAKTURE ON PARTNERI.SIFRA = FAKTURE.S_KUP)
;
而且我收到語法錯誤...我不知道該怎么辦...如果您知道答案,請告訴我... PS我是使用SQL的初學者...謝謝:)
編輯:
好的,我嘗試了一些內容並寫成這樣:
UPDATE PARTNERI SET PARTNERI.NG_DUGUJE_DOB =
(SELECT Sum(FAKTURE.ZA_UPLATU)-Sum(UPLATEF.IZNOS) + SUM(PARTNERI.DUGUJE)
FROM ((UPLATEF RIGHT JOIN PARTNERI ON UPLATEF.SIFRA = PARTNERI.SIFRA) LEFT JOIN FAKTURE ON PARTNERI.SIFRA = FAKTURE.S_KUP))
...這次我得到這個錯誤:
操作必須使用可更新的查詢。
編輯:
我設法使用你們告訴我的DSum函數解決了這個問題,效果很好!
非常感謝您的回答,非常感謝您的幫助! :)
這是Access數據庫引擎的一個已知限制:聽起來很愚蠢,即使使用自己的專有語法,它也無法使用涉及匯總(匯總)的查詢進行UPDATE
,並且沒有“純SQL”解決方法:
我在記錄中說的是Access的UPDATE
語法是最糟糕的失敗。
嘗試這樣做:
UPDATE (PARTNERI LEFT JOIN UPLATEF ON UPLATEF.SIFRA = PARTNERI.SIFRA) LEFT JOIN FAKTURE ON PARTNERI.SIFRA = FAKTURE.S_KUP SET PARTNERI.NG_DUGUJE_DOB = Sum(FAKTURE.ZA_UPLATU)-Sum(UPLATEF.IZNOS) + SUM(PARTNERI.DUGUJE)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.