Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/07/2013, 02:20
herimakil
 
Fecha de Ingreso: julio-2013
Mensajes: 2
Antigüedad: 10 años, 10 meses
Puntos: 0
ayuda: Seleccionar para cada usuario su máximo

Buenos días, tengo la siguiente consulta y estoy muy atascado

las tablas son las siguientes

Medico(CodMed, NombreM, ApellidoM, NSS)
Paciente(NHC, NombreP, ApellidoP, FechaNac)
Operación(CodOP, dia, hora, NHC, duración)
Participa(CodOp, CodMed)


la consulta sería, para cada paciente queremos saber su operación más larga a la que se sometió, mostrar: NHC, CodOp, duración y cuantos médicos participaron.
(si la duración de varias operaciones máximas es la misma deberá mostrar todas las que coincidan con la duracion máxima)


estaba pensando hacer 3 inner join, con paciente, operación y participa pero luego no se me ocurre como hacer el count de los medicos :S

ahora mismo, tengo lo siguiente

select a.nhc, b.codop, b.duracion, (select count(c.codmed) from participa c inner join operacion d on c.codop=d.codop)
from paciente a inner join operacion b on a.nhc=b.nhc
having b.duracion=max(b.duracion)
group by 1;

ayuda urgente porfavor


pd: otra más (lo siento)

para cada médico,(codigo y nombre), la operación más larga en la que participó (codigo), si no ha participado en ninguna operación, poner un 0 en el código de operación.


muchas gracias

Última edición por herimakil; 05/07/2013 a las 03:14 Razón: añadir consulta