Hola:
Al usar el operador COUNT, debes agrupar la consulta por los campos que aparecen en el SELECT y sobre los que aplicas ningún operador del tipo SUM; AVG, ... Otra cosa, el distinct sobra para este tipo de consultas, y tampoco veo que relaciones la tercera tabla en nigún sitio:
Select A.descripcion, B.nom_espec, count(C.cve_mat)
from planest A, especialidad B, cursos C
where A.cveespec = B.cveespec and B.clave = C.clave
group by A.descripcion, B.nom_espec
Revisa si la tabla de planes de estudio (la C) contiene siempre registros para cualquier especialidad, si no es obligado que sea así, sería conveniente que en vez de estar en la cláusula where estuviera en forma de un left join, para que no invalidara la consulta (si usas where y no existe, simplemente no te devuelve ninguna fila, si usas left join y no existe, te devuelve 0).
|