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

Ayuda con la siguiente Query

Estas en el tema de Ayuda con la siguiente Query en el foro de SQL Server en Foros del Web. tengo un problema con la siguiente query: tengo una tabla con un listado de usuarios que pueden realizar varias veces un TEST de evaluación Este ...
  #1 (permalink)  
Antiguo 14/06/2010, 09:39
 
Fecha de Ingreso: septiembre-2003
Mensajes: 341
Antigüedad: 20 años, 6 meses
Puntos: 0
Ayuda con la siguiente Query

tengo un problema con la siguiente query:
tengo una tabla con un listado de usuarios que pueden realizar varias veces un TEST de evaluación
Este test puede dar postivo o no (en blanco), y los pueden realizar varias veces :

Código PHP:
USUARIO ---- RESULTADO_VAR1-------RESULTADO_VAR2 ------- FECHAREALIZACIÓN
333 
--------  Positivo A -----------                ------- 25/02/2010 13:25:23
333 
---------             -----------                ------- 25/02/2010 13:29:23
..
.. 
Quiero obtener un listado con los diferentes alumnos que hayan dado positivo en RESULTADO_VAR1 ó RESULTADO_VAR2,
pero que si un alumno lo ha realizado varias veces que tenga en cuenta el de fecha más actual.
En el caso del ejemplo este alumno No debería devolvermelo....
Pues bien , con la siguiente query me lo devuelve .....

Código:
select distinct (Resultados.IdUsuario) as idUsuario, 
max (Resultados.FechaRealizacion) as FechaMax 
FROM Resultados 
WHERE (UPPER(Resultados.NombreTest) = UPPER('evaluacion'))  AND 
 (
  (Resultados.RESULTADO_VAR1 LIKE '%positivo A%') OR
 (Resultados.RESULTADO_VAR2 LIKE '%positivo B%')
 ) 
group by (Resultados.idusuario)
* COmo puedo realizar la quey para que :
- obtener un listado de los alumnos que han dado positivo pero siempre tomando el último test realizado.....
__________________
---Nuestra recompensa se encuentra en el esfuerzo y no en el resultado. Un esfuerzo total es una victoria completa.-- GHANDI
  #2 (permalink)  
Antiguo 14/06/2010, 09:54
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Respuesta: Ayuda con la siguiente Query

Aunque parece tarea de la U te voy a dar una mano.
Código SQL:
Ver original
  1. SELECT DISTINCT R.IdUsuario
  2. FROM Resultados R
  3. INNER JOIN (
  4.     SELECT IdUsuario, MAX(FechaRealizacion) FechaMax FROM Resultados GROUP BY IdUsuario
  5. ) T ON R.IdUsuario = T.IdUsuario AND R.FechaRealizacion = T.FechaMax
  6. WHERE UPPER(R.NombreTest) = UPPER('evaluacion')
  7. AND (
  8.     R.RESULTADO_VAR1 LIKE '%positivo A%' OR
  9.     R.RESULTADO_VAR2 LIKE '%positivo B%'
  10. )
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #3 (permalink)  
Antiguo 14/06/2010, 10:13
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Ayuda con la siguiente Query

Luego por eso no aprenden, jajaja
  #4 (permalink)  
Antiguo 14/06/2010, 10:26
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Respuesta: Ayuda con la siguiente Query

Claro, la idea es que aprendan de los ejemplos.
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #5 (permalink)  
Antiguo 14/06/2010, 10:53
 
Fecha de Ingreso: septiembre-2003
Mensajes: 341
Antigüedad: 20 años, 6 meses
Puntos: 0
Respuesta: Ayuda con la siguiente Query

muchas gracias!!
__________________
---Nuestra recompensa se encuentra en el esfuerzo y no en el resultado. Un esfuerzo total es una victoria completa.-- GHANDI
  #6 (permalink)  
Antiguo 14/06/2010, 11:36
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Ayuda con la siguiente Query

Bueno, pues a darle entonces con la ayuda escolar...

Etiquetas: query, siguiente
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 16:51.