写一个 sql, 它能完成一下逻辑: 现在有两个表 PORunnumberOfPacking 和 PosIssuedToPacking, 要求 PORunnumberOfPacking 的 PurchaseOrder 字段内容相同的数据中 OCMpacked 字段全为 1 , 找出这些 PurchaseOrder , 并且在表 PosIssuedToPacking 中找出 PurchaseOrder 字段与之前找出的相同, 但是 FinishedPacking 字段等于 0 的所有 PurchaseOrder
时间: 2024-02-18 15:02:57 浏览: 24
可以使用以下 SQL 语句实现上述逻辑:
```
SELECT DISTINCT pip.PurchaseOrder
FROM PORunnumberOfPacking rp
INNER JOIN PosIssuedToPacking pip ON rp.PurchaseOrder = pip.PurchaseOrder
WHERE rp.OCMpacked = 1
AND pip.FinishedPacking = 0
```
解释一下上述 SQL 语句的实现逻辑:
1. 使用 INNER JOIN 连接 PORunnumberOfPacking 和 PosIssuedToPacking 两个表,连接条件是 PurchaseOrder 字段相同。
2. 在连接后的表中,筛选出 PORunnumberOfPacking 表中 OCMpacked 字段为 1 的数据。
3. 在筛选后的数据中,再次筛选出 PosIssuedToPacking 表中 FinishedPacking 字段为 0 的数据。
4. 最终仅返回 PurchaseOrder 字段,并且去重。