Ver Mensaje Individual
  #2 (permalink)  
Antiguo 06/10/2004, 02:39
Teri
 
Fecha de Ingreso: abril-2003
Ubicación: Madrid
Mensajes: 707
Antigüedad: 21 años, 7 meses
Puntos: 0
La select resultante es un poco enrevesada, si bien se podría simplificar haciendo tres consultas diferentes, con algo así funciona: (creo, sobretodo depende de que versión de access estés utilizando)


SELECT NOTAS.COD_CLIENT, Count(NOTAS.materia) AS NOTAS, First(PAGOS.Pagos) AS Pagos
FROM NOTAS LEFT JOIN (SELECT CUOTAS.COD_CLIENT, Count(CUOTAS.COD_CLIENT) AS Pagos
FROM CUOTAS
WHERE (((CUOTAS.Tipo)="REC"))
GROUP BY CUOTAS.COD_CLIENT) AS PAGOS ON NOTAS.COD_CLIENT = PAGOS.COD_CLIENT
GROUP BY NOTAS.COD_CLIENT
HAVING (((Count(NOTAS.materia))<>First([Pagos])));


Pero si quieres hacerlo más sencillo, primero haz una consulta con el total de asignaturas por alumno, llamémosla MATERIAS

SELECT NOTAS.COD_CLIENT, Count(NOTAS.materia) AS NOTAS
FROM NOTAS GROUP BY NOTAS.COD_CLIENT;

Haz otra consulta para el total de pagos realizados, llamémosla PAGOS

SELECT CUOTAS.COD_CLIENT, Count(CUOTAS.COD_CLIENT) AS Pagos
FROM CUOTAS
WHERE (((CUOTAS.Tipo)="REC"))
GROUP BY CUOTAS.COD_CLIENT;

Y finalmente la que te devuelva la información que pides

SELECT MATERIAS.COD_CLIENT, MATERIAS.NOTAS, PAGOS.Pagos
FROM MATERIAS LEFT JOIN PAGOS ON MATERIAS.COD_CLIENT = PAGOS.COD_CLIENT
WHERE (((MATERIAS.NOTAS)<>[Pagos]));


Con esto te debería valer...

Un saludo