我正在尝试从数据库中提取数据。我正在查询的数据与采购订单和采购订单行相关联。仅当每个采购订单行的状态为已填充且无其他任何情况时,我才想拉相关的采购订单。一些代码将这些信息如何转换为SQL。
PO's|POLine's|Status
===================
1 |0 |F
1 |1 |F <-----PO is completely filled
1 |2 |F and should be returned.
1 |3 |F
====================
2 |0 |O
2 |1 |F
2 |2 |F <-----PO is not completely filled
2 |3 |O and shouldn't be returned.
2 |4 |P
答案 0 :(得分:1)
不存在
select t1.* from table t1
where not exists ( select 1 from table t2 where t1.po=t2.po and
t2.Status!='F')
答案 1 :(得分:1)
最简单的方法可能是计算未满足的PO行的数量,并确保其为0:
SELECT po
FROM mytable
GROUP BY po
HAVING COUNT(CASE WHEN status != 'F' THEN 1 END) = 0