Ich habe eine SQL Server-Tabelle wie folgt (calltable
). Dies ist eigentlich eine CDR-Tabelle (Call Detail Records). Unser aktuelles System bricht CDRs alle 30 Minuten (1800 Sekunden). Also muss ich die tatsächliche Anrufdauer eines bestimmten Anrufs mithilfe einer SQL Server-Abfrage (resulttable
) abrufen.So fügen Sie die Dauer von Teilsätzen hinzu
Bitte beachten Sie, dass es andere Ruflisten mit derselben Rufnummer (anumber
) & genannte Nummer (bnumber
) weniger als 1800 Sekunden geben kann. Diese Aufzeichnungen sollten ohne eine Zusammenfassung da sein.
Calltable:
Result:
Diese Datenstruktur stellt keinen Mechanismus zum Bestimmen bereit, ob zwei benachbarte CDRs dieselben oder unterschiedliche Aufrufe darstellen. In Ihren Beispieldaten ist es sicher möglich, dass die zweite Zeile ein Anruf war, der 1800 Sekunden dauerte und die dritte Zeile NICHT eine Fortsetzung dieses Anrufs ist, sondern ein Anruf von 200 Sekunden, der später in demselben 30-Minuten-Zeitraum auftrat. Müssen Sie diese beiden Situationen unterscheiden? –
Partielle CDRs sind nicht in einer Sequenz in der tatsächlichen Datenbanktabelle. Sie können überall in der Tabelle sein. Nur eine Möglichkeit, diese partiellen CDRs zu identifizieren, sind die gleiche Nummer, Bnumber & hinzugefügt 30 Minuten zu Calldate. –
CDRs enthalten normalerweise eine Anruf-ID, die mehrere Teile eines Anrufs miteinander verbinden kann. – Alex