Veamos, uso la sentencia que habías puesto tú:
Código SQL:
Ver originalSELECT clacli, nombre, nompas FROM clientes c
INNER JOIN codpais co ON c.clapai=co.clapai
WHERE clatip=2
AND clacli IN ( SELECT clacli FROM factura WHERE MONTH(fecha) IN(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12) AND YEAR(fecha)=2012)
AND co.clapai IN (10, 23)
Sólo añadí los meses restantes y la tabla países que me indica de qué páis es el cliente, y muestro el nombre (nompas).
Ahora, si cojo uno de esos registros que me devuelve la sentencia (clave, nombre y pais) y hago esto:
SELECT clacli FROM factura WHERE clacli=10 AND month(fecha)=1 AND year(fecha)=2012
No me da resultados, en ese caso mismamente. Algunos voy probando con 1, 2, 3... y algún mes no tienen datos. Este directamente no tiene compras en enero.