Buscar registros que no tengan un registro correspondiente en la misma tabla

Tengo la siguiente tabla:

 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

Ahora necesito construir una consulta que entregue todos JobIDs donde no hay entrada con ResultType = 1

EDIT1:

Entonces, al final, quiero un resultado que ofrezca solo JobIDs 34567 y 45678, porque no hay registro con un ResultType = 1 para esos JobIDs.

¿Alguien me puede apuntar en la dirección correcta?

preguntado el 12 de junio de 12 a las 15:06

4 Respuestas

Utilice esta consulta:

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

Respondido el 12 de junio de 12 a las 19:06

Algo como

select * from jobs where jobId not in 
          (select jobId from jobs where resultType = 1)

Respondido el 12 de junio de 12 a las 16:06

Otra forma (no probada):

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

Respondido el 12 de junio de 12 a las 16:06

SELECT JobID FROM <TableName> WHERE ResultType <> 1

Es esto lo que quieres ???

Respondido el 12 de junio de 12 a las 16:06

Gracias. no, pero cambié mi publicación para dejar en claro lo que quiero. - eskar

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.