MS-Office-Forum

Zurück   MS-Office-Forum > Microsoft Access & Datenbanken > SQL
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads
Themen-Optionen Ansicht
Alt 03.05.2018, 12:51   #1
Andreass
MOF User
MOF User
Standard T-SQL : MSSQL 2016 - komplexe Abfrage über Zeitraum

Hallo zusammen,

ich habe aus einer Telefonanlage folgende Tabelle (vereinfacht dargestellt):

CallID Startdatum Startzeit Enddatum Endzeit
--------------------------------------------------------------
1 2018-05-02 08:01:15 2018-05-02 08:05:11
2 2018-05-02 08:03:18 2018-05-02 08:04:01
3 2018-05-02 08:04:35 2018-05-02 08:07:46

Ich weiß also, von wann bis wann immer telefoniert wurde. Meine Aufgabe ist nun, herauszufinden, wie viele Gespräche maximal gleichzeitig pro Tag stattgefunden haben.

Leider fehlt mir gerade jegliche Idee wie ich das angehen kann.

Kann mir jemand bitte einen Gedankenanstupser geben

Vielen Dank
Andreass
Andreass ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 03.05.2018, 14:44   #2
hcscherzer
MOF Guru
MOF Guru
Standard

Kompliziert wird das ja, wenn es tagesübergreifende Gespräche gibt, also die an einem Tag vor 23:59:59 anfangen und am nächsten Tag enden. Insofern ist es doof, dass Datum und Uhrzeit nicht in einem Feld gespeichert sind - was theoretisch möglich wäre. Vielleicht würde ich erst mal eine View erstellen, die Datum und Zeit jeweils in einem Feld zusammenfasst?

Die Anzahl der Gespräche, die an einem bestimmten Tag jeweils angefangen oder geendet haben, ist relativ simpel:
Code:

select startdatum, count(*) anz_gesp
 from tabelle
 group by startdatum
Alternativ die, die geendet haben ...

Aber das ist nicht, das, was Du willst.
Um die Gleichzeitigkeit festzustellen, musst Du für jedes einzelne Gespräch zählen, wie viele jeweils gleichzeitig waren.
Hier vereinfacht, nur auf das Datum bezogen ... die Zeit, müsste - wie oben erwähnt - logischerweise noch mit einbezogen werden.
Code:

select t.callid, count(*) anz_g 
 from tabelle t left join
  (select * from tabelle) tg
  on t.callid <> tg.callid and tg.startdatum >= t.startdatum and tg.enddatum <= t.enddatum
group by t.callid
Dies ist freilich nur die Anzahl der gleichzeitigen Gespräche für jedes Gespräch.
Das müsste dann in einem weiteren Schritt für jedes Tagesdatum aggregiert und in einem dritten Schritt das Maximum für diesen Tag ermittelt werden.

__________________

Freundlichen Gruß
Hans-Christian
-----------------------------------------
Oft erwünscht, selten beachtet: nach Erledigung des Problems den Thread als erledigt zu markieren
-----------------------------------------
Ich möchte nur Mitglied in einem Verein sein, der Leute wie mich nicht als Mitglied aufnimmt (Groucho Marx).
-----------------------------------------
Ab sofort regelmässig: MOF Stammtisch in Bremen. Näheres hier.

Geändert von hcscherzer (03.05.2018 um 14:50 Uhr).
hcscherzer ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 03.05.2018, 17:16   #3
Andreass
Threadstarter Threadstarter
MOF User
MOF User
Standard

Danke schon mal für die Antwort, das muss ich mir morgen mal in Ruhe anschauen.
Wenn ich Datum und Uhrzeit in einem Feld zusammenfassen kann, dann müsste die Lösung ja eigentlich auch funktionieren.

Das Thema der tagesübergreifenden Telefonate kann man vernachlässigen, da es das nicht geben sollte und wenn doch, kann man die wenigen Datensätze auch wegfiltern. Diese würden das Ergebnis nicht beeinflussen.

Danke und viele Grüße

Andreass
Andreass ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:34 Uhr.


Partner und Co.
Access-Paradies -Alles rund um die Datenbank Microsoft Access -Code -Programme-Tools -Tipps   Kostenlose Tipps & Tricks, Downloads und Programme   www.kulpa-online.com - Tipps - Tricks - Tutorials - Meinungen - Downloads uvm...   vb@rchiv · Willkommen in der Welt der VB Programmierung   Access-Garhammer - Hier finden Sie jede Menge Beispiel-Datenbanken zu Access und mehr ...   mcseboard.de   Die Top Seite für Excel-VBA-Makros uvm.

Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

Copyright ©2000-2018 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günter Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.