Sql 更新或合并到或其他任何内容
我正在使用oraclepl/SQL。 我有表A:Sql 更新或合并到或其他任何内容,sql,oracle,plsql,Sql,Oracle,Plsql,我正在使用oraclepl/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 ---
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 .
任务是用表A中按ID列分组的列SALES之和填充表D中销售的SUM值,其中A.ID=B.ID,B.REGION=C.REGION。我想要的结果是:
ID SUM_OF_SALES
------------
1 7
2 4
3 .
我将非常感谢您为这项任务提供不同的方法。您真的需要物理表吗?你可能想考虑一个视图,那么你甚至不需要更新。只是一个想法。
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