Hola fiorella
teniendo en cuenta que el departamento es la tabla de mayor jerarquía y que una dirección solo pertenece a un departamento, la tabla dirección debe incluir el id_departamento al que pertenece cada dirección.
basados en esto:
Cita: las Relaciones que tengo van de la siguiente manera:
1.- En un departamento hay N activos
Un activo esta en un solo departamento
Osea la relacion es de 1:N y la tabla Activo hereda el id_dpto.
2.- Un articulo se le asigna N activos
Un activo es asignado a un articulo
Para que quede mas claro: supongamos que las sillas son de codigo: SIL-01
entonces yo puedo decir:
id_art. id_activo
SIL-01 1
SIL-01 2
SIL-01 3
En este caso la tabla activo tambien hereda el id_art
cada dirección tambien debe tener el codigo del departamento al que pertenece.
ahora si para generar el reporte por dirección y por departamento podría hacerse de la siguiente forma:
Por dirección: (consulta anidada)
select *from activos inner join direccion on activos.id_dpto = direccion.id_dpto where id_direccion = codigo_direccion;
Por departamento:
select *from activos where id_dpto = codigo_departamento;