oracel数据库跨表查询
来源:百度知道 编辑:UC知道 时间:2024/07/02 14:29:41
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