yo estaba trabajando para una empresa de telecomunicaciones hace algunos años y que tenían que generar una fórmula que calcula la duración de una llamada de acuerdo con el siguiente algoritmo:Fórmula matemática para el cálculo de la duración de llamada
- t1 es el primer período
- t2 es el periodo recurrente
- ECA es el tiempo de llamada real (en segundos)
- CD es la duración de la llamada efectiva (para fines de facturación)
si RCT es menor que t1, entonces el CD es igual a t1
si RCT es mayor que t1, luego CD = t1 + x * t2, donde x "redondeará" RCT al siguiente múltiplo más alto de t2.
Este algoritmo se traduce en: "Cargue durante los primeros t1 segundos, luego cargue cada t2 segundos después de eso".
Ejemplo:
t1 t2 RCT CD
60 10 48 60
60 10 65 70
60 10 121 130
30 20 25 30
30 20 35 50
30 20 65 70
Se puede crear una función/SQL que devuelva la "duración de la llamada" CD?
Sin usar si entonces else ...?
¿No debería ser 'techo ((ECA -t1)/t2) 'en lugar de' (piso ((rct-t1)/t2) +1) '? De lo contrario, 60-10-70 produciría un CD de 80. –
inserte en valores de llamadas (60, 10, 70, 70) inserte en valores de llamadas (60, 10, 80, 80) Estos no funcionan –
Esos insertos suponen una sintaxis que puede implicar el formato de la tabla. Agregue el (t1, t2, rct, cd) si es necesario. – Godeke