我有麻烦放在一起查询,并希望社会的帮助。我有以下场景:2个表(供应商和服务)。进行以下选择:
select f.supplier_id, s.planned_value, s.executed_value
from supplier f
inner join service s on f.id_supplier = s.id_supplier
我有以下结果:
| 供应商ID|计划值|EXECUTED_VALUE|
| - -----|- -----|- -----|
| 1|一百|一百|
| 2|两百|两百|
| 2|三百|零|
我需要设置一个查询,只有当来自该供应商的所有服务的performed value列都被填充时,它才返回供应商记录,没有重复,也就是说,在上面的场景中,结果应该是:
| 供应商ID|供应商名称|
| - -----|- -----|
| 1| ABC|
当第三行为null时,响应应该是:
| 供应商ID|供应商名称|
| - -----|- -----|
| 1| ABC|
| 2| DEF|
感谢所有能支持的人
我试着用计数,没有成功
3条答案
按热度按时间23c0lvtd1#
这里有一个选择:
样本数据:
查询从这里开始:
如果设置了所有值:
vvppvyoh2#
您可以使用分析查询:
bjp0bcyl3#
您可能不需要执行表联接。我建议从供应商表中选择所有记录,并对每个记录使用exists()检查服务表中是否有EXECUTED_VALUE为空的记录。