un poco rebuscado pero se obtiene lo que necesitas jejeje
Código SQL:
Ver originalCREATE TABLE #temp
(
cod INT,
cat VARCHAR(10)
)
INSERT INTO #temp VALUES (1,'A')
INSERT INTO #temp VALUES (1,'B')
INSERT INTO #temp VALUES (1,'C')
INSERT INTO #temp VALUES (1,'D')
INSERT INTO #temp VALUES (2,'A')
INSERT INTO #temp VALUES (3,'A')
INSERT INTO #temp VALUES (4,'C')
SELECT * FROM #temp WHERE cod=(
SELECT cod FROM #temp WHERE (cat='A' OR cat='B')
GROUP BY cod
HAVING COUNT(*)=2
) AND (cat='A' OR cat='B')
saludos!