繁体   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