我有一个包含以下字段的表: ID、VALUES、VARIAB
Im试图对字段值进行求和,但它需要按ID分组,而Subselect不接受多行。(当我只使用一个ID时,效果很好)。
BEGIN
UPDATE TBL2
SET SOMA =
(SELECT SUM(x.VALUES)
FROM TBL3 x INNER JOIN TBL2 y
ON y.ID = x.ID
WHERE y.ID = x.ID AND X.VARIAB = 1
GROUP BY x.ID
);
END;我正在使用ORACLE DB,如果有人对此发表评论,我将非常感激。为我的英语缺陷道歉。
发布于 2016-01-18 11:02:15
问题是您的update语句不相关--即。您的子查询没有引用正在更新的表。
您可以将其改为:
update tbl2 t2
set soma = (select sum(t3.values)
from tbl3 t3
where t2.id = t3.id
and t3.variab = 1);发布于 2016-01-18 10:53:57
若要一次更新多个记录和/或重新插入,请使用以下合并语句:
MERGE INTO TBL2 T2 USING (
SELECT x.id,SUM(x.VALUES) total
FROM TBL3 x
WHERE x.VARIAB = 1
GROUP BY x.ID
) T3 ON (T2.ID = T3.ID)
WHEN MATCHED THEN UPDATE
SET T2.SOMA = T3.TOTALhttps://stackoverflow.com/questions/34852615
复制相似问题