En el codigo, para tener datos creo una varaible tipo tabla q simula ser tu tabla y al menos cuado ejecuto sale correcto.
Código SQL:
Ver originalDECLARE @TABLE TABLE( idint INT, tipo CHAR(1))
INSERT INTO @TABLE VALUES( 1, 'A' )
INSERT INTO @TABLE VALUES( 2, 'A' )
INSERT INTO @TABLE VALUES( 3, 'A' )
INSERT INTO @TABLE VALUES( 4, 'B' )
INSERT INTO @TABLE VALUES( 5, 'B' )
INSERT INTO @TABLE VALUES( 6, 'B' )
INSERT INTO @TABLE VALUES( 7, 'C' )
INSERT INTO @TABLE VALUES( 8, 'C' )
INSERT INTO @TABLE VALUES( 9, 'C' )
SELECT t.idint, t.tipo
FROM @TABLE t
WHERE t.tipo IN ( 'A', 'C' ) AND
t.idint IN ( SELECT top 2 t1.idint
FROM @TABLE t1
WHERE t1.tipo = t.tipo )
Por si no manejas SQL, Top 2 = Limit 2 creo q lo demas es =.
Saludos