不知道如何解释这个…
我有一个类似的表,但我已经简化了如下:
我有一份给不同客户的货物表。有些人只买了苹果,有些人买了苹果和土豆。
我想要一个SQL查询只返回客户"要计费";=是的,而且顾客没有买任何蔬菜。
例如,如果表格是这样的:
<表类>
项目
名称
组
To_be_billed
CustomerNo。
tbody><<tr>2000 苹果 水果 对 1 2000 苹果 水果 没有 2 2000 苹果 水果 没有 3 2000 苹果 水果 对 4 2000 苹果 水果 对 5 4000 土豆 蔬菜 没有 2 4000 土豆 蔬菜 没有 4 表类>
您可以创建一个CTE来检查需要忽略的CustomerNo.
s,然后使用not exists
:
with bought_veg as
(
select "CustomerNo."
from tbl
where tbl."Group" like 'Vegetable'
)
select tbl.*
from tbl
where not exists (select 1 from bought_veg where tbl."CustomerNo." = bought_veg."CustomerNo.")
and tbl.To_be_billed = 'Yes'
不带CTE的示例:
select tbl.*
from tbl
where not exists (select "CustomerNo." from tbl t2 where tbl.[CustomerNo.] = t2.[CustomerNo.] and "Group" like 'Vegetable')
and tbl.To_be_billed = 'Yes'