La diferencia puedes sacarla con un datediff o timestampdiff, dependiendo del tipo de dato en la fecha.
La fecha futura es cuanto, 1 mes en adelante?
Entiendo, pero qué fecha quieres poner, 1 semana mas, 1 mes mas, etc. En base a eso se puede hacer un select simple:La fecha futuro tiene que recorrer todos los registros que tenga una fecha asociada a algún Telefono, por eso al final queda en NULL.
Es que necesito poner el registro N+1 al lado del N y cuando el telefono no tenga más registros en fecha,debe quedar NULLEntiendo, pero qué fecha quieres poner, 1 semana mas, 1 mes mas, etc. En base a eso se puede hacer un select simple:
select telefono,fecha, dateadd(month,1,fecha) as fecha_futuro,datediff(day,fecha_futuro,fecha) as diferencia from tabla
No te cacho, parece que planteaste mal el problema.
Para la fecha_futuro puedes usar la función Lead, por lo que la query para traerte la fecha +1 de cada teléfono sería asi:
lead(fecha, 1) OVER (PARTITION BY telefono Order By fecha ASC) as fecha_futuro.
Cuando llege al último registro de la partición teléfono al no existir un +1 te va a retornar el null.
Acá tienes la función: https://www.techonthenet.com/sql_server/functions/lead.php#:~:text=In SQL Server (Transact-SQL), the LEAD function,try using the LAG function.
Enviado desde mi SM-G9650 mediante Tapatalk