Ver Mensaje Individual
  #5  
Antiguo 11-07-2007
juanpe juanpe is offline
Miembro
 
Registrado: oct 2004
Posts: 46
Reputación: 0
juanpe Va por buen camino
Cita:
Empezado por TJose
Hola juanpe

has revisado que valores te devuelve la sentecia

Código SQL [-]
select id_paciente from estudios group by id_paciente having count(estudio) = 2





Saludos
TJose
Buenas TJose, gracias por responder.
Si, está revisado.

Para dejarlo mas claro aún, esta seria mi tabla:

ESTUDIOS ID_PACIENTE
-----1------------1
-----2------------1
-----3------------2
-----4------------2
-----5------------3
-----6------------4

Esta Sql
select id_paciente from estudios group by id_paciente having count(estudio) = 2
devuelve dos valores id_paciente 1,2, que son exactamente los registros que quiero borrar, todos los registros del id_paciente 1 y 2 quedando la tabla asi:

ESTUDIOS ID_PACIENTE
-----5------------3
-----6------------4

Y la verdad que no comprendo porque lo hace. Porque si tu haces la sql de borrar para todos los id_pacientes que tienen solo un estudio... delete from estudios where id_paciente in (select id_paciente from estudios group by id_paciente having count(estudio) = 1)
e imaginando de nuevo que nuestra tabla es la siguiente:

ESTUDIOS ID_PACIENTE
-----1------------1
-----2------------2
-----3------------3
-----4------------4
-----5------------5
-----6------------6

El resultado es correcto elimina TODOS LOS REGISTROS. OK!!

ESTUDIOS ID_PACIENTE
----- ------------
----- ------------
----- ------------
----- ------------
----- ------------
----- ------------

Un saludo y gracias.
Responder Con Cita