Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/05/2015, 02:49
Kritik
(Desactivado)
 
Fecha de Ingreso: marzo-2012
Mensajes: 366
Antigüedad: 13 años
Puntos: 31
consulta muy larga.

Buenas, Tengo una consulta que como es muy larga me lio un poco con ella. Porque tiene muchísimos campos en la select, y muchísimas condiciones, y cada una con una subconsulta en el where.

Tengo los siguientes campos: número, código, múltiplo1, múltiplo2,múltiplo3 [...] múltiplo50

Lo que quiero es que me diga qué múltiplos de registros cuyo código sea uno de 4 (A,B,C,D) no coinciden con el número en otro registro. Es decir... qué múltiplos no tienen su propio registro como número.

Mi consulta actual es:

SELECT
Multiplo1, Múltiplo2, Múltiplo3, [...], Multiplo50
FROM Numeros
WHERE Codigo IN ('A,'B','C','D') AND (
Multiplo1 NOT IN (SELECT Numero FROM Numeros)
OR Multiplo2 NOT IN (SELECT Numero FROM Numeros)
OR Multiplo3 NOT IN (SELECT Numero FROM Numeros)
OR Multiplo4 NOT IN (SELECT Numero FROM Numeros)
[..]
OR Multiplo50 NOT IN (SELECT Numero FROM Numeros))

Sin embargo me parece que no está demasiado optimizada. Y no se como hacerla mejor. A parte, como por ahora solo tengo 1 solo registro no se si esta consulta me daría lo esperado cuando tenga más.

Última edición por Kritik; 23/05/2015 a las 02:59