【数据库】oracle 多表拼接,Left join将SELECT出的所有结果拼接成一张表。

  项目中遇到这样的问题,需要按指定的时间区间从10个数据库表中查询到关于10个司法局的业务数量,案件数量等11列信息。再对这些结果排序。 

  那么我们怎么通过一个SQL语句来解决呢?

  下面介绍下SQL方法:

select 
    a.*,
    a.id,
    b.id, 
c.price 
from  author a 
left join  book b on a.id=b.id 
left join  order c on a.id=c.id

    使用Left join -on语句将3张表链接到了一起。对于项目的解决办法,可以将book,order,auther替换成sql语句,即select出来的表,再做一次left join

    SQL语句如下

select 
    a.MEDIATIONCOMMITTEE,
    a.tiaojieaj,
    b.shangbaosl,
    c.paichafk,
    d.zixunrz,
    e.chunjufw,
    f.faxuanhd
    from (select MEDIATIONCOMMITTEE,count(1) as tiaojieaj from MBM_CASE where DATEACCEPTED <= to_date('2018-05-10 00:00:00','yyyy-mm-dd hh24:mi:ss') group by MEDIATIONCOMMITTEE) a
    left join (select MEDIATIONCOMMITTEE,count(1) as shangbaosl from MCS_MEDIATIONCASE where REPORTDATE between to_date('2016-01-10 00:00:00','yyyy-mm-dd hh24:mi:ss') and to_date('2018-05-10 00:00:00','yyyy-mm-dd hh24:mi:ss') and STATUS !='ToBeReported' group by MEDIATIONCOMMITTEE) b 
    on a.MEDIATIONCOMMITTEE=b.MEDIATIONCOMMITTEE
    left join (select MEDIATIONCOMMITTEE,count(1) as paichafk from CDS_INVESTIGATIONFEEDBAC where DATE_ between to_date('2016-01-10 00:00:00','yyyy-mm-dd hh24:mi:ss') and to_date('2018-05-10 00:00:00','yyyy-mm-dd hh24:mi:ss') group by MEDIATIONCOMMITTEE) c
    on a.MEDIATIONCOMMITTEE=c.MEDIATIONCOMMITTEE
    left join (select MEDIATIONCOMMITTEE,count(1) as zixunrz from AMS_VILLAGESERVICELOG where CREATEDATE between to_date('2016-01-10 00:00:00','yyyy-mm-dd hh24:mi:ss') and to_date('2018-05-10 00:00:00','yyyy-mm-dd hh24:mi:ss') group by MEDIATIONCOMMITTEE    ) d
    on a.MEDIATIONCOMMITTEE=d.MEDIATIONCOMMITTEE
    left join (select MEDIATIONCOMMITTEE,count(1) as chunjufw from WWS_CONSULT where DATE_ between to_date('2016-01-10 00:00:00','yyyy-mm-dd hh24:mi:ss') and to_date('2018-05-10 00:00:00','yyyy-mm-dd hh24:mi:ss') group by MEDIATIONCOMMITTEE  ) e
    on a.MEDIATIONCOMMITTEE=e.MEDIATIONCOMMITTEE
    left join (select MEDIATIONCOMMITTEE,count(1) as faxuanhd from WWS_LEGALACTIVITY   where STARTDATE between to_date('2016-01-10 00:00:00','yyyy-mm-dd hh24:mi:ss') and to_date('2018-05-10 00:00:00','yyyy-mm-dd hh24:mi:ss') group by MEDIATIONCOMMITTEE) f
    on a.MEDIATIONCOMMITTEE=f.MEDIATIONCOMMITTEE



  • 6
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值