簡體   English   中英

如何通過使用MS ACCESS中的聯接從表中更改列字段?

[英]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”解決方法:

Microsoft幫助和支持:基於總計查詢的更新查詢失敗

我在記錄中說的是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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM