[英]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.