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

Consulta SQL. Podeis orientarme?

Estas en el tema de Consulta SQL. Podeis orientarme? en el foro de SQL Server en Foros del Web. Imaginemos que tenemos una tabla en la que nos devuelve 2 campos, persona y fecha. En un mismo dia el campo persona puede venir muchas ...
  #1 (permalink)  
Antiguo 22/08/2012, 05:38
 
Fecha de Ingreso: enero-2004
Ubicación: PAïS LLïONES
Mensajes: 162
Antigüedad: 20 años, 3 meses
Puntos: 3
Consulta SQL. Podeis orientarme?

Imaginemos que tenemos una tabla en la que nos devuelve 2 campos, persona y fecha.

En un mismo dia el campo persona puede venir muchas veces, pues se guarda un registro con la fecha por cada vez que accede

Lo que necesito es hacer un SELECT de las personas que hace mas de XXX minutos que no han accedido.

Parece una bobada, pero me estoy liando de una manera...

Pues uso DATEDIFF(MINUTE, Tiempo, GETDATE()) > 10 pero claro, eso me muestra los que hace mas de 10 minutos que accedieron, pero si esa persona accedio hace mas de 10 minutos y accedio hace un minuto, me la muestra en el SELECT, cuando no deberia
  #2 (permalink)  
Antiguo 22/08/2012, 08:31
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Consulta SQL. Podeis orientarme?

lo que ocupas es traerte la maxima fecha de cuando accedio la persona digamos algo asi:


Código SQL:
Ver original
  1. CREATE TABLE #temp
  2. (
  3. name VARCHAR(20),
  4. fecha datetime
  5. )
  6.  
  7.  
  8. INSERT INTO #temp  VALUES ('yo',dateadd(mi,-11,getdate()))
  9. INSERT INTO #temp  VALUES ('yo',dateadd(mi,-12,getdate()))
  10.  
  11.  
  12. INSERT INTO #temp  VALUES ('tu',dateadd(mi,-12,getdate()))
  13. INSERT INTO #temp  VALUES ('tu',dateadd(mi,-14,getdate()))
  14.  
  15. SELECT *,datediff(mi,fecha,getdate()),getdate() FROM(
  16. SELECT * FROM #temp WHERE name+CONVERT(VARCHAR(50),fecha) IN (SELECT name+CONVERT(VARCHAR(50),MAX(fecha)) FROM #temp GROUP BY name)
  17. ) t1 WHERE datediff(mi,fecha,getdate()) > 10
  18.  
  19.  
  20. con esto nos muestra 2 registros yo y tu jejeje con diferencia de 14 y 12 minutos,las fechas maximas y si agregamos un registro mas
  21.  
  22. INSERT INTO #temp VALUES ('yo',getdate())
  23.  
  24. nos muestra solo el registro de tu :)


saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Etiquetas: select, sql, tabla, campos
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 21:45.