oracel数据库跨表查询

来源:百度知道 编辑:UC知道 时间:2024/07/02 14:29:41
现有两个表table1和table2,如下:

table1表:
en_code en_name bs_code bs_name budgetmoney
001 单位一 A01 项目一 10000
001 单位一 A01 项目一 20000
001 单位一 A02 项目二 10000

table2表:
en_code en_name bs_code bs_name paymoney
001 单位一 A01 项目一 10000
001 单位一 A01 项目一 20000
001 单位一 A02 项目二 10000
001 单位一 A03 项目三 10000
002 单位二 A01 项目一 10000

这两个表的en_code和 en_name是一一对应的,bs_code和bs_name也是一一对应的

我想要的查询结果:

en_code en_name bs_code bs_name budgetmoney paymoney
001 单位一 A01 项目一 30000 30000
001 单位一 A02 项目二 10000 10000
001 单位一 A03 项目三 ----- 10000
002 单位二 A01 项目一 ----- 10000

请高手指点一下。

经过测试通过,有点长

select b.en_code,b.en_name,b.bs_code,b.bs_name,a.budgetmoney,b.paymoney
from
(
select en_code,en_name,bs_code,bs_name,sum(paymoney) paymoney
from table2
group by en_code,en_name,bs_code,bs_name
) b left join
(
select en_code,en_name,bs_code,bs_name,sum(budgetmoney) budgetmoney
from table1
group by en_code,en_name,bs_code,bs_name
) a
on b.en_code=a.en_code and b.bs_code=a.bs_code;

select * from table1 as t1 left join table2 as t2 on (t1.en_code=t2.en_code and t1.bs_code=t2.bs_code)

select table2 .en_code , table2 .en_name , table2 .bs_code , table2 .bs_name,sum(bugetmoney)as bugetmoney ,sum(paymoney) as paymoney
from table2 ,table1 where table2.bs_code=table1.bs_code(*)
group by table2 .bs_code,table2 .en_name ,table2 . bs_code , table2 .bs_name

select en_code,en_name,bs_code,bs_name,sum(budgetmoney),sum(paymoney) from (select A.*,b.paymoney
from table1 A Left Jo