FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
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. |
#2
|
||||
|
||||
hola, la SQL se reduce a:
hasta lugo.
__________________
PepeLolo El hombre el único virus que mide más de unas cuantas micras |
#3
|
|||
|
|||
Muchas gracias por responder PepeLolo, pero me he equivocado al expresarme.
Cuando digo que "no la borra completamente" me refiero a todos los id_paciente que cumplen la subconsulta. No me referia a todos los registros de la tabla . A ver si ahora me explico mejor: Quiero borrar todos los registros de una tabla que cumplen que tienen un nº determinado de estudios. La consulta de borrar todo es la siguiente: delete from estudios Ahora necesito referenciar los registros a traves de un campo, en este caso Id_paciente where id_paciente in y ahora solo quiero los id_pacientes agrupados que tienen en total 2 estudio (select id_paciente from estudios group by id_paciente having count(estudio) = 2) Pues no me funciona del todo correctamente, ya que como explico en el primer mensaje, elimina solo el primer registro de cada id_paciente que cumple la subconsulta, dejando un registro de esos id_paciente que deberian ser borrado tb. Gracias de nuevo |
#5
|
|||
|
|||
Cita:
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. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Saber interpretar los sueños | Bicho | Humor | 0 | 10-02-2006 10:11:30 |
Interpretar ficheros XSD | kes | Conexión con bases de datos | 0 | 20-01-2005 12:16:37 |
Interpretar codigo Html | miguel_fr | Internet | 2 | 13-04-2004 15:17:21 |
Interpretar mensajes de MS-Dos | verm83 | Varios | 3 | 07-04-2004 15:41:53 |
|