Oracle SQL:需要帮助,基于子表中的值之和更新记录

问题描述

|| 假设我有一组符合以下情况的表: 板条箱有箱子 箱子有桶 值区包含一个称为Pieces的数值 一个箱子里有一个叫做TotalPieces的数值,它是其中所有盒子中所有桶中所有碎片的总和。 因此,我有以下表格称为CRATES,BOXES,BUCKETS。我需要一个更新语句,该语句将填充板条表中所有板条的TotalPieces列(在下面的SQL中未显示),作为所有存储段的总和。是的,我必须出于某种特定原因这样做,以防万一有人决定都像是这样,“好吧,为什么这样做而不是仅仅运行一条选择语句?\”我可以执行选择语句,然后它看起来像这样:
SELECT CR.ID,SUM(BU.PIECES) FROM CRATES CR
JOIN BOXES BO ON BO.CRATE_ID = CR.ID
JOIN BUCKETS BU ON POPR.BO_ID = BO.ID
GROUP BY CR.ID;
如何将所有存储桶的总件数放入板条箱表的“件数”列中?     

解决方法

这可以解决问题:
update crates cr set cr.total_pieces = 
(
    select sum(bu.pieces) pieces from crates cr
    join boxes bo on bo.crate_id = cr.id
    join buckets bu on bu.box_id = box.id
    where crate.id = cr.id
    group by crate.id
);
    ,尝试这个:
 SELECT BO.CRATE_ID AS CRATEID,SUM(BUCKETSUM) AS CRATESUM
  FROM BOXES BO INNER JOIN 
    (SELECT BU.BO_ID AS BOXID,SUM(BU.PIECES) as BUCKETSUM
     FROM BUCKETS BU GROUP BY BU.BO_ID) BU
    ON BU.BOXID = BO.ID
  GROUP BY BO.CRATE_ID
    

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...