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

Alguna idea? Restar dos fechas de la misma tabla pero de la fila anterior.

Estas en el tema de Alguna idea? Restar dos fechas de la misma tabla pero de la fila anterior. en el foro de Bases de Datos General en Foros del Web. Gente supongamos que tengo esta tabla: (tabla: logos) Rowid Descripción Fec_desde fec_hasta 1 Logo1 01/01/2015 01/04/2015 2 Logo2 06/04/2014 NULL Alguna idea pra traer la ...
  #1 (permalink)  
Antiguo 15/04/2015, 08:19
Avatar de agusong  
Fecha de Ingreso: julio-2010
Ubicación: Mendoza
Mensajes: 56
Antigüedad: 14 años, 4 meses
Puntos: 0
Pregunta Alguna idea? Restar dos fechas de la misma tabla pero de la fila anterior.

Gente supongamos que tengo esta tabla:

(tabla: logos)

Rowid Descripción Fec_desde fec_hasta
1 Logo1 01/01/2015 01/04/2015
2 Logo2 06/04/2014 NULL

Alguna idea pra traer la fecha hasta del rowid 1 y restarsela a fecha desde del rowid 2, para que me de como resultado una cantidad de dias en la cual no hubo un logo?

Muchas Gracias, estoy bastante perdido.
  #2 (permalink)  
Antiguo 15/04/2015, 08:41
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: Alguna idea? Restar dos fechas de la misma tabla pero de la fila anterior.

Podrias hacer algo como esto:

Código SQL:
Ver original
  1. DECLARE @TABLE TABLE(
  2. id INT IDENTITY (1,1),
  3. fecha datetime
  4. )
  5.  
  6. INSERT INTO @TABLE VALUES (getdate())
  7. INSERT INTO @TABLE VALUES (getdate()+2)
  8. INSERT INTO @TABLE VALUES (getdate()+6)
  9.  
  10. SELECT t1.id, datediff(dd,t1.fecha,t2.fecha) AS d_diff,t1.fecha,t2.fecha FROM @TABLE AS t1
  11. LEFT JOIN @TABLE AS t2 ON (t1.id+1=t2.id)

Resultado:

id d_diff fecha fecha
1 2 2015-04-15 09:44:37.030 2015-04-17 09:44:37.030
2 4 2015-04-17 09:44:37.030 2015-04-21 09:44:37.030
3 NULL 2015-04-21 09:44:37.030 NULL


Ojo la sentencia es para sql server......
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 15/04/2015, 09:21
Avatar de agusong  
Fecha de Ingreso: julio-2010
Ubicación: Mendoza
Mensajes: 56
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Alguna idea? Restar dos fechas de la misma tabla pero de la fila anterior.

Gracias Libras paso la idea a oracle, y prubeo, si funcion a te comento! =)
  #4 (permalink)  
Antiguo 15/04/2015, 09:41
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Alguna idea? Restar dos fechas de la misma tabla pero de la fila anterior.

Cita:
Iniciado por agusong Ver Mensaje
Gracias Libras paso la idea a oracle, y prubeo, si funcion a te comento! =)
@agusong: Suele ser conveniente que indiquen cuál DBMS se está usando, para evitar idas y venidas con sitaxis que son exclusivas e alguno de ellos.

Tenlo en cuenta para futuras preguntas.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 15/04/2015, 09:47
Avatar de agusong  
Fecha de Ingreso: julio-2010
Ubicación: Mendoza
Mensajes: 56
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Alguna idea? Restar dos fechas de la misma tabla pero de la fila anterior.

Libras estuve viendo lo tuyo pero terminé haciendo sub consultas, Gracias igual! lo dejo por si a alguien le sirve:

select
tabla2.fec_hasta termina_logo,
tabla1.fec_desde empieza_prox_logo,
tabla1.fec_desde - tabla2.fec_hasta dias_sin_logo
from
(select a.*, rownum orden from (select a.* from todos_logos a where a.id_logot not in (0000, 0001, 0002, 0003) order by fec_desde ) a ) tabla1,
(select a.*, rownum orden from (select a.* from todos_logos a where a.id_logot not in (0000, 0001, 0002, 0003) order by fec_desde ) a ) tabla2
where tabla1.orden = tabla2.orden + 1
;
  #6 (permalink)  
Antiguo 15/04/2015, 09:48
Avatar de agusong  
Fecha de Ingreso: julio-2010
Ubicación: Mendoza
Mensajes: 56
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Alguna idea? Restar dos fechas de la misma tabla pero de la fila anterior.

Cita:
Iniciado por gnzsoloyo Ver Mensaje
@agusong: Suele ser conveniente que indiquen cuál DBMS se está usando, para evitar idas y venidas con sitaxis que son exclusivas e alguno de ellos.

Tenlo en cuenta para futuras preguntas.
Si perdón, utilizo Base de Datos de Oracle

Etiquetas: alguna, fila, idea, restar, tabla
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 23:47.