Ver Mensaje Individual
  #1  
Antiguo 10-07-2007
juanpe juanpe is offline
Miembro
 
Registrado: oct 2004
Posts: 46
Reputación: 0
juanpe Va por buen camino
Interpretar SQL

Muy buenas.
Tengo una duda con la siguiente SQL a ver si conseguimos aclarar.

Esta SQL debería borrar todo de la tabla estudios donde un id_paciente tiene un nº determinado de estudios (esto es el igual del having count(estudio)= 1 )

delete from estudios where id_paciente in (select id_paciente from estudios group by id_paciente having count(estudio) = 1)

Pues bien, para todos aquellos id_paciente que tienen un único estudio lo hace fenomenal, borra todos.

Pero si aumentamos los estudios por id_paciente ya no lo hace bien, por ejemplo 2 estudios por id_paciente.

delete from estudios where id_paciente in (select id_paciente from estudios group by id_paciente having count(estudio) = 2)

Para situaros, si en la bd tengo 4 registros de 2 id_pacientes distitnos

ESTUDIOS ID_PACIENTE
-----1------------1
-----2------------1
-----3------------2
-----4------------2

y hago la SQL anterior
delete from estudios where id_paciente in (select id_paciente from estudios group by id_paciente having count(estudio) = 2)

el resultado es que borra el primer registro de cada id_paciente, pero no lo borra completamente y necesito que así fuera.

ESTUDIOS ID_PACIENTE
-----2------------1
-----4------------2

Uso IB 7.5.
Perdon por el tochazo pero no sabia explicarme mejor y mas corto.
Gracias por la ayuda.

Última edición por juanpe fecha: 10-07-2007 a las 11:30:25.
Responder Con Cita