Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

GRAN acertijo Consulta SQL

Estas en el tema de GRAN acertijo Consulta SQL en el foro de Bases de Datos General en Foros del Web. hola buenos dias sucede que tengo la siguiente consulta sql: SELECT reenvio_caso.id_reenvio, respuesta_caso.idcaso, respuesta_caso.u_responde, respuesta_caso.fecha_r, respuesta_caso.hora_r, reenvio_caso.id_casor, reenvio_caso.usuario_recibe, reenvio_caso.fecha, reenvio_caso.hora FROM reenvio_caso, respuesta_caso WHERE reenvio_caso.id_casor ...
  #1 (permalink)  
Antiguo 25/07/2008, 07:16
 
Fecha de Ingreso: julio-2008
Ubicación: very high
Mensajes: 41
Antigüedad: 15 años, 9 meses
Puntos: 0
Exclamación GRAN acertijo Consulta SQL

hola buenos dias sucede que tengo la siguiente consulta sql:

SELECT reenvio_caso.id_reenvio, respuesta_caso.idcaso, respuesta_caso.u_responde, respuesta_caso.fecha_r, respuesta_caso.hora_r, reenvio_caso.id_casor, reenvio_caso.usuario_recibe, reenvio_caso.fecha, reenvio_caso.hora
FROM reenvio_caso, respuesta_caso
WHERE reenvio_caso.id_casor = respuesta_caso.idcaso and reenvio_caso.usuario_recibe = respuesta_caso.u_responde and respuesta_caso.u_responde = '$stadistic'
ORDER BY respuesta_caso.idcaso

trabajo en php con MySql la consulta hasta ahi me sale bien pero lo q necesito es seleccionar solo los datos en los q el campo reenvio_caso.id_reenvio (el cual es autoincremento), sean mayores, para evitar q los de el campo respuesta_caso.idcaso se me repitan, pues solo me interesa el ultimo de cada uno de los datos de este campo donde sean iguales... Lo q me arroja es esto

idcaso u_responde fecha_r hora_r id_casor usuario_recibe fecha hora
15 admin 2008-07-22 08:09:39 15 Admin 2008-07-21 11:23:13
15 admin 2008-07-22 08:09:39 15 Admin 2008-07-16 11:08:02
15 admin 2008-07-21 18:14:40 15 Admin 2008-07-21 11:23:13
15 admin 2008-07-21 18:14:40 15 Admin 2008-07-16 11:08:02
15 admin 2008-07-22 08:11:06 15 Admin 2008-07-21 11:23:13
15 admin 2008-07-22 08:11:06 15 Admin 2008-07-16 11:08:02
16 admin 2008-07-16 17:29:59 16 Admin 2008-07-21 17:25:00
16 admin 2008-07-22 08:13:06 16 Admin 2008-07-21 17:25:00
16 admin 2008-07-16 17:29:59 16 Admin 2008-07-21 10:50:10
16 admin 2008-07-22 08:13:06 16 Admin 2008-07-21 10:50:10
16 admin 2008-07-16 17:29:59 16 Admin 2008-07-16 11:08:17
16 admin 2008-07-22 08:13:06 16 Admin 2008-07-16 11:08:17

y desearia q me saliera solo una vez el 15 y una el 16 donde el campo reenvio_caso.id_reenvio sea el mayor ya que se pueden hacer varios reenvios pero necesito raber solo el ultimo de determinado usuario, espero haberme explicado bien y q porfavor me puedan ayudar
Muchas gracias
  #2 (permalink)  
Antiguo 25/07/2008, 09:09
 
Fecha de Ingreso: mayo-2008
Ubicación: Mallorca
Mensajes: 20
Antigüedad: 15 años, 11 meses
Puntos: 1
Respuesta: GRAN acertijo Consulta SQL

Se me ocurre una solución ejecutando una subconsulta.

La cosa quedaría del siguiente modo:

Cita:
SELECT reenvio_caso.id_reenvio,
respuesta_caso.idcaso,
respuesta_caso.u_responde,
respuesta_caso.fecha_r,
respuesta_caso.hora_r,
reenvio_caso.id_casor,
reenvio_caso.usuario_recibe,
reenvio_caso.fecha,
reenvio_caso.hora
FROM reenvio_caso,
respuesta_caso
WHERE reenvio_caso.id_reenvio IN
(
SELECT MAX(reenvio_caso.id_reenvio)
FROM reenvio_caso
WHERE reenvio_caso.id_casor = respuesta_caso.idcaso
AND reenvio_caso.usuario_recibe = respuesta_caso.u_responde
AND respuesta_caso.u_responde = '$stadistic'
)
ORDER BY respuesta_caso.idcaso;

La consulta te daría el resultado que tú quieres (si te he entendido bien). El pero es que quizá no es demasiado eficiente. Quizá alguno de los expertos que pululan por aquí pueda asesorarte mejor en ese sentido.

Saludos!

Última edición por vertimarte; 25/07/2008 a las 09:42
  #3 (permalink)  
Antiguo 27/07/2008, 11:29
 
Fecha de Ingreso: julio-2008
Ubicación: Hermosillo, Sonora
Mensajes: 95
Antigüedad: 15 años, 9 meses
Puntos: 3
Respuesta: GRAN acertijo Consulta SQL

Creo que las subconsultas pueden ser buan opción, pero no abusar cuando hay mucha información, a menos que se tengan los indices bien puestos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:53.