Buenas

Para que os voy a engañar... Necesito ayuda con una práctica de clase. Tengo que hacer varias consultas sobre unas tablas y no consigo sacarlas :s
La consulta en cuestión es la siguiente:
Mostrar la siguiente información del personaje con más munición: nombre y apellidos, seudónimo, altura, ancho y cantidad de munición.
Sé que tengo que utilizar la función max() para seleccionar el valor con mayor munición, pero para obtener todos los datos tengo que meter mano en 3 tablas, y es ahí donde me pierdo, en el camino entre el max y saber a quien corresponde ese valor :s
Os dejo aqui pegadas las tablas a las que hay que acceder y si alguno quiere, os puedo pegar también alguna inserción para probarlo.
CREATE TABLE ARMAS
( Nombre_armas varchar2(25) not null,
Daño numeric(2) not null,
Tasa numeric(2) not null,
Municion numeric(3) not null,
CONSTRAINT PKARMAS PRIMARY KEY (Nombre_armas));
CREATE TABLE TIENE
( Pseudonimo varchar2(35) not null,
Nombre_armas varchar2(25) not null,
CONSTRAINT PKTIENE PRIMARY KEY (Pseudonimo,Nombre_armas),
CONSTRAINT FK1TIENE FOREIGN KEY (Pseudonimo) REFERENCES MALOS (Pseudonimo) ON DELETE CASCADE,
CONSTRAINT FK2TIENE FOREIGN KEY (Nombre_armas) REFERENCES ARMAS (Nombre_armas) ON DELETE CASCADE);
CREATE TABLE MALOS
( Nombre varchar2(30) not null,
Apellidos varchar2(35) not null,
Pseudonimo varchar2(35) not null,
Edad numeric(3) not null,
Sexo char(5) not null,
Altura numeric(3) not null,
Ancho numeric(4) not null,
Morfologia varchar2(12),
Color_pelo varchar2(10),
Cod_traje numeric(3),
CONSTRAINT PKMALOS PRIMARY KEY (Pseudonimo),
CONSTRAINT FKMALOS FOREIGN KEY (Cod_traje) REFERENCES TRAJES (Cod_traje) ON DELETE SET NULL,
CHECK ((Ancho>-101) AND (Ancho<101)));
Si necesitais alguna aclaración de algo que no se entienda, preguntadme y... Gracias !
(: