0

ボックス、ドキュメント、バッチの 3 つのテーブルがあります。各ボックスには複数のドキュメントが含まれ、各ドキュメントには複数のバッチがあります。ドキュメント内の少なくとも 1 つのバッチの値が IsDeleted = 0 であるボックス内のドキュメントの数を選択したい。

ドキュメントに 10 個のバッチがあると仮定します。少なくとも 1 つのバッチの値が isdeleted = 0 の場合はカウントし、それ以外のすべてのバッチの値が isdeleted = 1 の場合はカウントしません。

上記に基づいてドキュメントの番号を選択するにはどうすればよいですか?

私はこれを試しましたが、うまくいきません

SELECT b.ID as BOXID,d.ID as DocID, count(1) as CountDoc 
  FROM Documents as d 
 INNER JOIN dbo.Boxes as b on d.boxid = b.id 
 INNER JOIN dbo.Batches as t on d.ID = t.DocumentID 
 WHERE d.ID = t.DocumentID 
   AND d.boxid= b.id 
   AND t.isDeleted = 0 
 GROUP BY d.ID , t.DocumentID ,b.ID --HAVING t.isDeleted = 0
4

1 に答える 1

0
select boxid, count(distinct documentid)
from 
    documents
         inner join batches
    on documents.id = batches.documentid
where
    isdeleted = 0
group by boxid
于 2013-08-06T08:04:06.857 に答える