Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2008 如何获取没有其他记录具有特定值的记录_Sql Server 2008 - Fatal编程技术网

Sql server 2008 如何获取没有其他记录具有特定值的记录

Sql server 2008 如何获取没有其他记录具有特定值的记录,sql-server-2008,Sql Server 2008,我有一个名为Employee的表,如下所示 在这个表中,我想写这样一个查询,它将为我提供引用类型不是1的员工 Select * from Employee where Reference_Type <> 1 从引用类型为1的员工中选择* 这将为我提供除“1”之外的所有可能值,但我需要输出为员工2,因为该员工没有引用类型1。我假设您希望所有没有引用类型1的员工,请使用不存在的: SELECT e.* FROM dbo.Employee e WHERE NOT EXISTS (

我有一个名为
Employee
的表,如下所示

在这个表中,我想写这样一个查询,它将为我提供引用类型不是1的员工

Select * from Employee where Reference_Type <> 1 
从引用类型为1的员工中选择*

这将为我提供除“1”之外的所有可能值,但我需要输出为员工2,因为该员工没有
引用类型
1。

我假设您希望所有没有
引用类型
1的员工,请使用
不存在的

SELECT e.*
FROM dbo.Employee e
WHERE NOT EXISTS
(
    SELECT 1 FROM dbo.Employee e2
    WHERE e2.pk_employee_id = e.pk_employee_id 
    AND   e2.Reference_Type = 1
)

您的查询将为表的这部分提供((1,2,4)、(1,3,3)、(2,1,3)、(2,2,4)、(2,3,5)、(3,2,2)、(3,3,4))。如果这是不正确的,请详细说明您希望看到的结果。如果这不是您得到的结果,请提供您得到的结果。查询看起来是正确的。您通过什么方式获得错误的数据?缺行?引用类型为1的行?这不会返回任何员工,因为每个员工都有一个引用类型1。对不起,输入错误,它应该是“引用类型=1”。这将返回不正确和不需要的数据,因为您将得到没有引用类型1的员工,但其他2名员工将在我发布的示例中列出。。。
Select * from Employee where pk_employee_ID not in 
(select a.pk_employee_ID from Employee a where a. Reference_Type = 1)