Hola Cruz!
Bueno, aquí te va:
1- capacidad maxima registrada historicamente por departamento:
select departamento.nombre,
(select max(capacidad_maxima_registrada) from capacidades_historicas
where capacidades_historicas.codigo_departamento = departamento.codigo_departamento) as maximo
from departamento join capacidades_historicas on (departamento.codigo_departamento = departamento.codigo_departamento)
group by departamento.nombre, maximo
order by departamento.nombre;
* Esto te dará un listado ordenado de departamentos, con sus respectivos valores máximos de capacidad maxima registrada historicamente.
//---------------------------------------------------------------------------
2- sumar las capacidades maximas registradas por departamento:
select departamento.nombre,
(select sum(capacidad_maxima_registrada) from capacidades_historicas
where capacidades_historicas.codigo_departamento = departamento.codigo_departamento) as sumatoria
from departamento join capacidades_historicas on (departamento.codigo_departamento = departamento.codigo_departamento)
group by departamento.nombre, sumatoria
order by departamento.nombre;
* Esto te dará un listado ordenado de departamentos, semejante al anterior, pero con la sumatoria de sus respectivos valores máximos de capacidad registrados
//--------------------------------------
NOTA:
- En ambos casos lo que hemos hecho es una consulta anidada, es decir, una consulta que contiene dentro otra consulta.
- Al final, si no pones un Group By, los datos aparecerán repetidos (uno por cada aparición del departamento dentro de capacidades_historicas).
Espero te sirva. Un GigaSaludo!!!