【问题标题】:Edit query in MS-Access with a subquery containg a SUM() field使用包含 SUM() 字段的子查询在 MS-Access 中编辑查询
【发布时间】: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
   );

【问题讨论】:

    标签: ms-access join subquery


    【解决方案1】:

    如果查询或任何连接查询中有任何聚合(Grouy by、Sum、Count、...),则您无法编辑数据。

    你可以写一个函数来计算表中每一行的总和。

    【讨论】:

    • 啊哈,我已经尝试以我正在使用的连续形式放置一个函数。很遗憾,以这种方式获取结果有点滞后,但是哦。
    • 令我惊讶的是,对 SELECT 语句的单个列使用聚合 SELECT 会使其他字段无法更新。我自己也不会想到的。您是否尝试过 DISTINCTROW 谓词?我怀疑它会有所帮助,但它在其他一些情况下也有效,所以值得一试。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多