使用包含 SUM() 字段的子查询在 MS-Access 中编辑查询
Posted
技术标签:
【中文标题】使用包含 SUM() 字段的子查询在 MS-Access 中编辑查询【英文标题】:Edit query in MS-Access with a subquery containg a SUM() field 【发布时间】:2010-01-20 13:16:30 【问题描述】:当我在 Access 中打开此查询(它只是 2 个链接表的集合)时,我可以毫无问题地编辑数据。
SELECT O.*, PP.skuapexid
FROM tblSkuBestellingen AS O
INNER JOIN tblSkuApex AS PP
ON (PP.begindatum <= O.besteldatum) AND (PP.sku = O.sku)
WHERE NOT EXISTS
(
SELECT * FROM tblSkuApex PP2
WHERE PP2.sku = PP.sku AND
PP2.begindatum <= O.besteldatum AND
PP2.begindatum > PP.begindatum
);
但是,当我添加一个小字段来显示已交付产品的总数时,它突然不允许我再编辑它了。有没有办法解决这个问题?
SELECT O.*, PP.skuapexid,
(
SELECT Sum(Nz(tblLeveringProduct.geleverd,0)) AS TotaalGeleverd
FROM tblSkuBestellingen LEFT JOIN tblLeveringProduct ON tblSkuBestellingen.SkuBestelId=tblLeveringProduct.SkuBestelId
WHERE tblSkuBestellingen.sku = PP.sku
) AS TotaalGeleverd
FROM tblSkuBestellingen AS O
INNER JOIN tblSkuApex AS PP
ON (PP.begindatum <= O.besteldatum) AND (PP.sku = O.sku)
WHERE NOT EXISTS
(
SELECT * FROM tblSkuApex PP2
WHERE PP2.sku = PP.sku AND
PP2.begindatum <= O.besteldatum AND
PP2.begindatum > PP.begindatum
);
【问题讨论】:
【参考方案1】:如果查询或任何连接查询中有任何聚合(Grouy by、Sum、Count、...),则您无法编辑数据。
你可以写一个函数来计算表中每一行的总和。
【讨论】:
啊哈,我已经尝试以我正在使用的连续形式放置一个函数。很遗憾,以这种方式获取结果有点滞后,但是哦。 令我惊讶的是,对 SELECT 语句的单个列使用聚合 SELECT 会使其他字段无法更新。我自己也不会想到的。您是否尝试过 DISTINCTROW 谓词?我怀疑它会有所帮助,但它在其他一些情况下也有效,所以值得一试。以上是关于使用包含 SUM() 字段的子查询在 MS-Access 中编辑查询的主要内容,如果未能解决你的问题,请参考以下文章