0

複数のテーブルに結合する必要があるヘッダー テーブル (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 に正しいデータが含まれます。

4

1 に答える 1

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
于 2013-05-29T09:26:17.660 に答える