1

我为此使用了 3 个表格,Part、PartDrawing 和 ShopDrawing。基本上我想显示所有零件都有库存的 ShopDrawings。但是,每个 ShopDrawing 都有多个与之配套的 PartDrawings,因此当我像这样运行查询时:

SELECT DISTINCT ShopDrawing.DrawingNo FROM ShopDrawing, PartDrawing, Part
WHERE ShopDrawing.DrawingNo = PartDrawing.DrawingNo
AND PartDrawing.PartNo = Part.PartNo
AND Part.InStock = 'YES';

它显示每一个 ShopDrawing,因为它们都至少有一个库存零件。我只希望它显示 ShopDrawings,其中所有需要的零件都有库存,我不知道该怎么做。

4

1 回答 1

1

尝试通过不选择数据Part.InStock = 'NO'而不是选择数据来进行评估Part.InStock = 'YES'

SELECT 
     ShopDrawing.DrawingNo 
FROM 
     ShopDrawing WHERE ShopDrawing.DrawingNo NOT IN
         (SELECT 
              PartDrawing.DrawingNo 
          FROM 
              PartDrawing LEFT JOIN Part ON PartDrawing.PartNo = Part.PartNo 
          WHERE 
              Part.InStock IS NULL
          GROUP BY PartDrawing.DrawingNo 
          HAVING COUNT(*)>0)
于 2012-05-10T06:35:40.983 回答