如果类型为“ 10”,则不显示客户名称“ a”

时间:2019-07-22 18:18:00

标签: sql

我有此数据:

Customer Name    Type    Domain  start date  end date    ID Number
    a            10       TV     2/26/2019   5/1/2022    q001
    a            11       TV     2/26/2019   5/1/2022    q002
    a            12       TV     2/26/2019   5/1/2022    q003
    b            11       TV     2/26/2019   5/1/2022    q004
    c            10       TV     2/26/2019   5/1/2022    q005
    c            11       TV     2/26/2019   5/1/2022    q006
    c            12       TV     2/26/2019   5/1/2022    q007
    d            12       TV     2/26/2019   5/1/2022    q008

我需要一个查询来排除所有Type值为10的客户的所有记录。因此,即使客户a的第二条记录和第三条记录的类型分别为1112,也应将其排除在外,因为该客户也有10类型的记录。

根据上面的示例数据,结果集应该是这样:

Customer Name    Type    Domain  start date  end date    ID Number
    b            11       TV     2/26/2019   5/1/2022    q004
    d            12       TV     2/26/2019   5/1/2022    q008

我该怎么做?

2 个答案:

答案 0 :(得分:3)

您可以使用NOT IN子查询:

SELECT * FROM MyTable a
WHERE [Customer Name] NOT IN (
    SELECT [Customer Name] FROM MyTable b
    WHERE Type = 10
)

答案 1 :(得分:1)

使用NOT EXISTS

select t.* from tablename t
where not exists (
  select 1 from tablename
  where customername = t.customername and type = 10 
) 
相关问题