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

[SOLUCIONADO] select 7 dias de los ultimos 30

Estas en el tema de select 7 dias de los ultimos 30 en el foro de SQL Server en Foros del Web. tengo mi tabla con sus campos y su respectiva data, entre ellos tengo el campo de fecha(01/05/2013) de ahi a 30 dias antes sin contar ...
  #1 (permalink)  
Antiguo 02/05/2013, 10:11
 
Fecha de Ingreso: mayo-2013
Mensajes: 17
Antigüedad: 10 años, 11 meses
Puntos: 0
Pregunta select 7 dias de los ultimos 30

tengo mi tabla con sus campos y su respectiva data, entre ellos tengo el campo de fecha(01/05/2013) de ahi a 30 dias antes sin contar hoy mi pregunta es la siguiente, en la misma tabla puedo seleccionar los ultimos 7 dias con su respectiva data en otro campo sin que deje de mostrarme los 30 dias por default, gracias, y si fuera asi podrian ayudarme, gracias.
  #2 (permalink)  
Antiguo 02/05/2013, 11:06
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: select 7 dias de los ultimos 30

puedes poner un ejemplo de lo que necesitas?
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 02/05/2013, 14:35
 
Fecha de Ingreso: mayo-2013
Mensajes: 17
Antigüedad: 10 años, 11 meses
Puntos: 0
Respuesta: select 7 dias de los ultimos 30

Fecha Año Mes Día Moneda Últimos Siete Días
4/2/2013 2013 4 2 QTZ 4/2/2013
4/5/2013 2013 4 5 QTZ 4/5/2013
4/8/2013 2013 4 8 QTZ 4/8/2013
… … … … … …
4/30/2013 2013 4 30 QTZ sin fecha
5/1/2013 2013 5 1 QTZ sin fecha

es decir que solo me muestre las fechas de los ultimos 7 dias sin obviar la demàs data
  #4 (permalink)  
Antiguo 02/05/2013, 15:42
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: select 7 dias de los ultimos 30

sip con un left join y haciendo un datediff :)


algo asi:


Código SQL:
Ver original
  1. CREATE TABLE #temp
  2. (
  3. id INT IDENTITY(1,1),
  4. dato VARCHAR(20),
  5. fecha datetime
  6. )
  7.  
  8. INSERT INTO #temp VALUES ('yo',GETDATE())
  9. INSERT INTO #temp VALUES ('tu',dateadd(dd,1,GETDATE()))
  10. INSERT INTO #temp VALUES ('el',dateadd(dd,2,GETDATE()))
  11. INSERT INTO #temp VALUES ('nosotros',dateadd(dd,3,GETDATE()))
  12. INSERT INTO #temp VALUES ('ustedes',dateadd(dd,4,GETDATE()))
  13. INSERT INTO #temp VALUES ('ellos',dateadd(dd,5,GETDATE()))
  14. INSERT INTO #temp VALUES ('aquellos',dateadd(dd,7,GETDATE()))
  15.  
  16. SELECT t1.id,t1.dato,CASE WHEN isnull(t2.fecha,0)=0 THEN 'No data' ELSE CONVERT(VARCHAR(20),t2.fecha,101) END AS diff FROM #temp AS t1
  17. LEFT JOIN (SELECT * FROM #temp WHERE DATEDIFF(dd,getdate(),fecha)>=1 AND DATEDIFF(dd,getdate(),fecha)<=3) AS t2 ON (t1.id=t2.id)

ya nada mas adecualo a tus necesidades
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #5 (permalink)  
Antiguo 03/05/2013, 04:42
Avatar de zalito12  
Fecha de Ingreso: noviembre-2011
Ubicación: Coruña, España
Mensajes: 430
Antigüedad: 12 años, 5 meses
Puntos: 67
Respuesta: select 7 dias de los ultimos 30

Bueno, yo intentando simplificarlo hice la siguiente consulta (supongamos que tu tabla se llame tabla1, con id, campo1, campo2 y fecha):
Código SQL:
Ver original
  1. SELECT t1.id, t1.campo1, t1.campo2, t2.fecha FROM tabla1 AS t1 LEFT JOIN (
  2. SELECT fecha FROM tabla1 WHERE DATEDIFF(NOW(),fecha) <= 7) AS t2 ON t1.id = t2.id;

Esto devolverá la fecha en los casos que sea menor o igual a hace siete días y en el resto de casos devolverá NULL sólo en ese campo.
__________________
Dicen que las personas piensan en su lengua materna, yo lo hago en PHP
  #6 (permalink)  
Antiguo 03/05/2013, 10:37
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: select 7 dias de los ultimos 30

Que NOW() no es de MySQL???
__________________
MCTS Isaias Islas
  #7 (permalink)  
Antiguo 06/05/2013, 01:43
Avatar de zalito12  
Fecha de Ingreso: noviembre-2011
Ubicación: Coruña, España
Mensajes: 430
Antigüedad: 12 años, 5 meses
Puntos: 67
Respuesta: select 7 dias de los ultimos 30

Perdón :S
Entonces sería con: DATEDIFF(dd,getdate(),fecha)
__________________
Dicen que las personas piensan en su lengua materna, yo lo hago en PHP
  #8 (permalink)  
Antiguo 10/05/2013, 07:07
 
Fecha de Ingreso: mayo-2013
Mensajes: 17
Antigüedad: 10 años, 11 meses
Puntos: 0
Respuesta: select 7 dias de los ultimos 30

Muchas gracias por su apoyo, me funciono lo que me respondieron.

Etiquetas: dias, select
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 13:45.