首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

关于同ID的不定数记录位置对应的有关问题

2012-01-18 
关于同ID的不定数记录位置对应的问题现情况为:表MIdname------------aaNamebbNameccName表Am(m_id对应表M

关于同ID的不定数记录位置对应的问题
现情况为:
表M  
Idname
------------
aaName
bbName
ccName

表Am(m_id对应表M的id)
Idm_id
-------------
1a
2c

表Ad(为Am的子表)
Idam_idqty
--------------------
1110
2110
3210

表Bm(m_id对应表M的id)
Idm_id
-------------
1a
2b

表Bd(为Bm的子表)
Idbm_idqty
--------------------
1110
2210
3210

当可能还有Cm,Cd;Dm,Dd...多个关联子集,
现在要得到的结果:

m.idm.namead.qtybd.qty
------------------------------
aaName2010
bbName20--> ad.qty为空
cbName10--> bd.qty为空

[解决办法]
select * from
m,Am,(select am_id,sum(qty) qty from Ad group by am_id) Aad,
Bm,(select bm_id,sum(qty) qty from Bd group by bm_id) Bbd,
where m.id=Am.m_id
and m.id=Bm.id
and Am.id=Aad.am_id(+)
and Bm.id=Bbd.bm_id(+)
[解决办法]
select m.id ,m.name,ad.qty,bd.qty
from m left join am on m.id = am.m_id
left join Ad on am.m_id = ad.m_id
left join bm on m.id = bm.m_id
left join Bd on am.m_id = bd.m_id

热点排行