SQL显示缺少记录的组

时间:2017-07-24 15:42:01

标签: sql sql-server

我有两个列,我正在查看一个用于作业单,一个用于每个作业单的操作号,有一系列操作1-4,所以它看起来像。

Job Order       Operation 
------------------------
00023            1
00023            2
00023            3 
00023            4
00024            1
00024            2
00024            3 
00024            4
00025            1
00025            2
00025            3 
00025            4
00026            2
00026            3 
00026            4

我想显示缺少操作1的所有作业订单。在此示例中,由于它们将被分组,因此我只会看到作业订单00026的一个实例,因为这是唯一缺少操作1的作业单。 期望的输出看起来像

Job Order
---------------
00026

2 个答案:

答案 0 :(得分:3)

select Job_Order 
from your_table
group by Job_Order 
having min(Operation) > 1

答案 1 :(得分:1)

有几种解决方案:

select distinct job_order from table
where job_order not in (select job_order 
                        from table
                        where operation = 1)

另一个是:

select distinct t1.job_order from table t1
where not exists (select *
                  from table t2
                  where t2.operation = 1 and t2.job_order = t1.job_order)

接下来可能是:

select distinct job_order 
from table
except
select job_order 
join table
where operation = 1