none
Consulta SQL RRS feed

  • Pregunta

  • Hola, yo necesito sacar la diferencia entre dos fechas:

    Fecha                               Fecha Pago                Dias
    2019-12-01 08:34:00    2020-01-11 18:55:00    41
    2019-12-01 08:34:00    2020-02-13 20:37:00    74

    La primera comparacion esta bien, pero la 2da fila necesito que compare con la fecha de arriba solamente.

    que darian muchos menos dias.

    Alguien me puede ayudar?=

    Saludos!

    miércoles, 15 de julio de 2020 14:23

Respuestas

  • Hola Mauricio Hamak:

    Das un escenario muy pobre para darte una solución a tu pregunta. 

    No obstante para obtener los datos de registros anteriores o posteriores, puedes utilizar las funciones de ventana Lag/Lead

    ;with cte as (
    -- En el cte esta el origen de tus datos.
    	Select * from (
    		values  ('20190112 08:34:00','20200111 18:55:00',41),
    				('20190112 08:34:00','20200213 20:37:00',74)
    			)tbl(Fecha, FechaPago, Dias)
    		), Anterior As (
    	Select c.Fecha, c.FechaPago, c.dias,
    	lag(c.FechaPago) over(partition by c.fecha order by c.FechaPago) as ant
    	from cte c
    	)
    	Select *, DateDiff(day,Ant, FechaPago)
    		From Anterior

    Salida

    Lag / Lead

    https://javifer2.wordpress.com/2018/09/11/lag-y-lead-siguiente-y-anterior/

    • Marcado como respuesta Mauricio Hamak jueves, 16 de julio de 2020 11:46
    jueves, 16 de julio de 2020 0:10

Todas las respuestas

  • o seria la resta de dias entre la segunda y la primer fila y asi sucesivamente....
    miércoles, 15 de julio de 2020 14:25
  • Hola Mauricio Hamak:

    Das un escenario muy pobre para darte una solución a tu pregunta. 

    No obstante para obtener los datos de registros anteriores o posteriores, puedes utilizar las funciones de ventana Lag/Lead

    ;with cte as (
    -- En el cte esta el origen de tus datos.
    	Select * from (
    		values  ('20190112 08:34:00','20200111 18:55:00',41),
    				('20190112 08:34:00','20200213 20:37:00',74)
    			)tbl(Fecha, FechaPago, Dias)
    		), Anterior As (
    	Select c.Fecha, c.FechaPago, c.dias,
    	lag(c.FechaPago) over(partition by c.fecha order by c.FechaPago) as ant
    	from cte c
    	)
    	Select *, DateDiff(day,Ant, FechaPago)
    		From Anterior

    Salida

    Lag / Lead

    https://javifer2.wordpress.com/2018/09/11/lag-y-lead-siguiente-y-anterior/

    • Marcado como respuesta Mauricio Hamak jueves, 16 de julio de 2020 11:46
    jueves, 16 de julio de 2020 0:10