假设我有如下所示的数据:
我有一些已停用的记录和一些活跃的记录。问题是我的一些记录同时包含已停用和活动的行。我只想要没有活动行的记录。
所以在这个例子中,尽管 Greg 有 2 个退休的行。他的一排处于活动状态的事实将使他失去资格。另一方面,汤米只有 1 行并且已退休。他没有活动行。
查询将只返回 Tommy。
答案 0 :(得分:1)
根据您的定义,员工的只能按姓名定义。然后你可以使用 EXISTS。即:
select * from myTable t1
where Status = 'RETIRED' and
not exists (
select * from myTable t2
where t1.EmployeeName = t2.employeeName and t2.Status = 'ACTIVE');
答案 1 :(得分:0)
SELECT * FROM myTable
WHERE Status = 'RETIRED'
AND [Employee Name] NOT IN -- Assumes that Employee Name is a unique key
(
SELECT [Employee Name] FROM myTable
WHERE Status = 'ACTIVE'
)