如何根据select的结果更新oracle表?

问题描述 投票:0回答:1

我有两个具有以下架构的表

tableA
    id (unique)
    count

tableB
    id (not unique)
    count

我想对具有相同 id 的 tableB 进行求和,并发现结果总和不等于 tableA 中相同 id 的计数,并用 sum 的结果更新 tableA

例如

表A

row1
    id1
    count=10 
row2
    id2
    count=5 
row3
    id3
    count=1 

表B 第1行 编号1 计数=5 第2行 编号1 计数=5 第3行 编号2 计数=1 第4行 编号2 计数=3

在上面的例子中,只有

id2
的计数与tableB的总和不同,所以我想将tableA中的
id2
更新为计数4

这是我用来查找有差异的 id 和 count 的脚本

 select g.id, c.count_sum, g.count
   FROM
    tableA g,
    (SELECT
       id,
       SUM(count) count_sum
     FROM tableA
     GROUP BY id) c
   where g.id = c.id and 
         c.count_sum <> g.count
         and g.extra_condition = 'dummy'

如何将tableB sum的结果插入tableA count

oracle
1个回答
0
投票

更新 tableA 设置 a.count=s.count_sum tableA 的内部联接(您的分组在此处选择)s on a.id=s.id.

© www.soinside.com 2019 - 2024. All rights reserved.