Ich wurde vor einigen Jahren für ein Telekommunikationsunternehmen arbeiten, und ich hatte eine Formel zu erzeugen, die den folgenden Algorithmus nach Dauer eines Anruf berechnet:Mathematische Formel Gesprächsdauer für die Berechnung
- t1 ist die erste Periode
- t2 ist die Wiederholungsperiode
- RCT die tatsächliche Anrufzeit (in Sekunden)
- CD Dauer (für Abrechnungszwecke) ist die effektive Aufruf
Wenn RCT kleiner als t1 ist, dann ist die CD gleich t1
Wenn RCT größer als t1 ist, dann CD = t1 + x * t2, wobei x RCT auf das nächsthöchste Vielfache von t2 "rundet".
Dieser Algorithmus wird wie folgt übersetzt: "Lade die ersten t1 Sekunden auf, lade danach alle t2 Sekunden auf".
Beispiel:
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
Können Sie eine Funktion/SQL erstellen, die die "Gesprächsdauer" CD zurückkehren wird?
Ohne zu verwenden wenn dann sonst ...?
Sollte das nicht sein 'Decke ((RCT -t1)/t2) 'statt' (floor ((rct-t1)/t2) +1) '? Andernfalls würde 60-10-70 eine CD von 80 produzieren. –
einfügen in Anrufe Werte (60, 10, 70, 70) einfügen in Anrufe Werte (60, 10, 80, 80) Diese funktionieren nicht –
Diese Einfügungen nehmen eine Syntax an, die das Format der Tabelle implizieren kann. Fügen Sie bei Bedarf die (t1, t2, rct, cd) hinzu. – Godeke