我有一个标题表(VATLH)我需要加入多个表, 我需要将它连接到vatld,计算数据行的数量,并将其连接到vldocd以查看它是否在Doc(DOCID)中使用了标题
所以我使用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结果为null。添加相应的行时,DOCID具有正确的数据。
答案 0 :(得分: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