2013-05-29 90 views
0

我有一個頭表(VATLH),我需要連接到多個表, 我需要將它加入到vatld中,以統計數據行的數量,並將它連接到vldocd以查看是否它的報頭在一個文件(DOCID)使用case:多個左連接命令

所以我用2左聯接

SELECT VATLH.periode 
     , vatlh.dossierID 
     , vldocd.docID 
     , COUNT(vatld.vatnum) 
    FROM vatlh 
     LEFT JOIN vatld 
     LEFT JOIN vldocd ON vldocd.dossierID = vatld.dossierID 
       AND VLDOCd.PERIODE = VATLd.PERIODE 
       AND vldocd.soort = 0 ON vatld.dossierID = vatlh.dossierID 
       AND vatlh.periode = vatld.periode 
GROUP BY VATLH.periode, vatlh.dossierID, vldocd.docID 

但是,如果有在vatld表中沒有相應的行中,DOCID導致空如果結果應該是一個DOCID。添加相應的行時,DOCID具有正確的數據。

回答

1

這是因爲要加入使用vatld領域vldocd - 相反,使用vatlh領域,像這樣:

SELECT VATLH.periode 
     , vatlh.dossierID 
     , vldocd.docID 
     , COUNT(vatld.vatnum) 
    FROM vatlh 
     LEFT JOIN vatld ON vatld.dossierID = vatlh.dossierID 
       AND vatlh.periode = vatld.periode 
     LEFT JOIN vldocd ON vldocd.dossierID = vatlh.dossierID 
       AND VLDOCd.PERIODE = VATLh.PERIODE 
       AND vldocd.soort = 0 
GROUP BY VATLH.periode, vatlh.dossierID, vldocd.docID