Ver Mensaje Individual
  #3 (permalink)  
Antiguo 24/05/2015, 23:53
GeriReshef
 
Fecha de Ingreso: julio-2012
Ubicación: Israel
Mensajes: 360
Antigüedad: 11 años, 10 meses
Puntos: 40
Respuesta: consulta muy larga.

El problema es la complejidad..
Yo intentaría así:
Código SQL:
Ver original
  1. CREATE TABLE Numeros(Numero INT,Codigo  CHAR(1),multiplo1   INT,multiplo2   INT,multiplo3 INT);
  2. INSERT
  3. INTO    Numeros
  4. VALUES  (1,'A',2,NULL,4),
  5.         (2,'B',NULL,6,NULL),
  6.         (7,'A',14,21,NULL),
  7.         (21,'B',42,NULL,84),
  8.         (42,NULL,NULL,NULL,NULL),
  9.         (84,NULL,NULL,NULL,NULL);
  10.  
  11. SELECT  *
  12. FROM    Numeros N1
  13. WHERE   Codigo IN ('A','B','C','D')
  14.         AND EXISTS (SELECT *
  15.                 FROM    (VALUES (N1.multiplo1),
  16.                                 (N1.multiplo2),
  17.                                 (N1.multiplo3)) St(Numeros)
  18.                 WHERE   NOT EXISTS (SELECT  *
  19.                                 FROM    Numeros N2
  20.                                 WHERE   Numeros=N2.Numero));
__________________
El Castellano no es mi lengua materna: discúlpenme por los errores gramaticales.
Mi blog