SQL查询,仅选择没有默认指示符的值

SQL查询,仅选择没有默认指示符的值,sql,one-to-many,Sql,One To Many,我有一个包含以下字段的表: 主键ID 雇员身份证 默认_指示器值“N”或“Y” 附属关系学生、职员、教员 员工只能是学生、员工或教员。 无论它们是哪一个,都将具有默认指示器='Y' 问题是默认指示器的默认值='N'。 有时用户不会出现在应用程序中,因为他们没有默认的_指示器设置 如何查询以查找那些默认_指示符的值为'N',但没有另一行的默认_指示符为'Y'的行 谢谢你的帮助 SELECT Employee_ID FROM [table_name] t WHERE Default_Indicato

我有一个包含以下字段的表: 主键ID 雇员身份证 默认_指示器值“N”或“Y” 附属关系学生、职员、教员

员工只能是学生、员工或教员。 无论它们是哪一个,都将具有默认指示器='Y'

问题是默认指示器的默认值='N'。 有时用户不会出现在应用程序中,因为他们没有默认的_指示器设置

如何查询以查找那些默认_指示符的值为'N',但没有另一行的默认_指示符为'Y'的行

谢谢你的帮助

SELECT Employee_ID
FROM [table_name] t
WHERE Default_Indicator = 'N'
    AND NOT EXISTS ( SELECT *
          FROM [table_name] t1
          WHERE t.Employee_ID = t1.Employee_ID
              AND Default_Indicator = 'Y' )
我不确定我是否完全理解你的意思,但我认为这应该起作用。尝试一下:

另一种解决方案:

ELECT Employee_ID
FROM [table_name] t
WHERE t.Default_Indicator = 'N' AND t.Employee_ID 
     NOT IN  ( SELECT t1.Employee_ID
          FROM [table_name] t1
              AND t1.Default_Indicator = 'Y' )

试图添加答案,但由于某种原因,stackoverflow不允许我添加。。一些关于猫和一些排序错误的东西。你是什么意思,但是没有另一行的默认_指示符='Y'?当然每个人只会有一排-他们怎么会有另一排呢?试着写一个答案,也得到了猫。这里有一个摘要:您需要一个嵌套查询。根据表的大小,可以使用“不存在”或“不存在”。这允许您查找与“Y”不匹配的员工id。不过,员工id听起来像是一个误导性的列名。他们可能是学生而不是员工。@Bohemian为什么?教员也可以作为学生上课。或者学生可以做勤工俭学。