El problema es la complejidad..
Yo intentaría así:
Código SQL:
Ver originalCREATE TABLE Numeros(Numero INT,Codigo CHAR(1),multiplo1 INT,multiplo2 INT,multiplo3 INT);
INSERT
INTO Numeros
VALUES (1,'A',2,NULL,4),
(2,'B',NULL,6,NULL),
(7,'A',14,21,NULL),
(21,'B',42,NULL,84),
(42,NULL,NULL,NULL,NULL),
(84,NULL,NULL,NULL,NULL);
SELECT *
FROM Numeros N1
WHERE Codigo IN ('A','B','C','D')
AND EXISTS (SELECT *
FROM (VALUES (N1.multiplo1),
(N1.multiplo2),
(N1.multiplo3)) St(Numeros)
WHERE NOT EXISTS (SELECT *
FROM Numeros N2
WHERE Numeros=N2.Numero));