【數據庫】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



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章