我正在使用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 .
对于完成此任务的不同方法,我将非常感激。
答案 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