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.