更新或合并INTO或其他任何东西

时间:2014-07-19 18:50:46

标签: sql oracle plsql

我正在使用Oracle PL / SQL。 我有表A:

ID  SALES
--------
1   5
2   3
3   231
2   1
3   421
1   2

表B:

ID  REGION
------------
1   London
2   New-York
3   Paris
4   Dublin
5   Munich

和表C:

ID  REGION
------------
1   London
2   New-York

我还有表D:

ID  SUM_OF_SALES
------------
1   .
2   .
3   .

任务是在表D中填充值SUM_OF_SALES,其中表A中的列销售总和按ID列分组,其中A.ID = B.ID和B.REGION = C.REGION。我想要的结果是:

ID  SUM_OF_SALES
------------
1   7
2   4
3   .

对于完成此任务的不同方法,我将非常感激。

1 个答案:

答案 0 :(得分:2)

MERGE INTO  d
USING (SELECT a.id, SUM(a.sales) sum_of_sales
       FROM   a,b,c
       WHERE  a.id = b.id
       AND    b.region = c.region
       GROUP BY a.id) q
WHEN MATCHED THEN UPDATE SET d.sum_of_sales = q.sum_of_sales