查找同一表中没有相应记录的记录

时间:2012-06-12 14:58:29

标签: sql sql-server sql-server-2008-r2

我有下表:

 ID | JobID | Data   | ResultType
---------------------------------
  1 | 12345 | XXXX   | 0
  2 | 12345 | YYYY   | 1
  3 | 23456 | AAAA   | 0
  4 | 23456 | BBBB   | 1
  5 | 34567 | FOOB   | 0
  6 | 45678 | BARB   | 0

现在我需要构建一个查询,提供所有JobIDs,其中没有ResultType = 1的条目

EDIT1:

所以最后,我希望结果仅提供JobIDs 34567和45678,因为ResultType = 1没有JobIDs的记录。

有人能指出我正确的方向吗?

4 个答案:

答案 0 :(得分:4)

使用此查询:

SELECT JobID 
From table1 a 
WHERE NOT EXISTS
 (SELECT 1 FROM table1 b WHERE b.JobID = a.JobID AND b.ResultType = 1)

答案 1 :(得分:3)

这样的东西
select * from jobs where jobId not in 
          (select jobId from jobs where resultType = 1)

答案 2 :(得分:2)

另一种方式(未经测试):

SELECT JobId FROM Jobs GROUP BY jobId HAVING max(ResultType) = 0

答案 3 :(得分:0)

SELECT JobID FROM <TableName> WHERE ResultType <> 1

这是你想要的吗?