Ich bin auf der Suche nach der Anzahl der Benutzer, die zu einem bestimmten Zeitpunkt an einem Server angemeldet sind. Ich habe Daten auf Benutzerebene mit der Anfangsdatumszeit und Enddatumszeit.Microsoft SQL Server - Joining basierend auf Start DateTime und EndDateTime mit einer kumulativen Summe
Tabelle 1
user_ID start_time end_time
----------------------------------------------------------
1XbC34 03/06/2016 00:00:06 03/06/2016 00:23:26
2re56 03/06/2016 00:01:07 03/06/2016 00:32:40
sdf4ser1w 03/06/2016 00:02:10 03/06/2016 00:02:37
sf54fw3fa 03/06/2016 00:02:11 03/06/2016 00:25:42
fa31f1asf1 03/06/2016 00:04:17 03/06/2016 00:05:43
gvf5af13a 03/06/2016 00:04:18 03/06/2016 00:05:30
f2s14fs3afd1a 03/06/2016 00:04:33 03/06/2016 00:05:07
sdf1a3f1d3sa 03/06/2016 00:04:34 03/06/2016 00:23:02
Der Ausgang Ich sehe bin für ist
DateTime Logged in accumulative (between Start and end)
--------------------------------------------
03/06/2016 00:00:06, 1
03/06/2016 00:01:07, 2
03/06/2016 00:02:10, 3
03/06/2016 00:02:11, 4
03/06/2016 00:04:17, 4
etc ...
Meine ersten Überlegungen eine temporäre Tabelle zu erstellen waren, die alle halten würde das Datum/die Uhrzeit für den Beitritt zu Tabelle 1, wie unten gezeigt.
select dt.Start_time
into #cal
from table1 dt
where dt.start_time between '2016-06-03 00:00:00' AND '2016-06-03 23:59:59'
group by dt.start_time
Die nächste wäre die Verknüpfung zu erstellen.
Select dt.Start_Time, count(*)
from table1 dt
left Join #cal C on C.start_time between dt.start_time AND dt.end_time
where dt.start_time between '2016-06-03 00:00:00' AND '2016-06-03 23:59:59'
group by dt.start_time
Jede Hilfe sehr geschätzt.
Danke,
Mark
ich davon ausgegangen, dass * * von "Microsoft SQL" Sie wirklich bedeuten "Microsoft SQL Server ** **" und fügte hinzu, das entsprechende Etikett für diese (Es könnte * auch * bedeuten, SQL in Microsoft Access - aber das scheint nicht wahrscheinlich). Bitte ** immer ** einen relevanten, nützlichen Tag für Ihr tatsächlich verwendetes RDBMS zur Verfügung stellen - 'sql' ist nur die Abfragesprache, die von vielen vielen Datenbanken verwendet wird und ist daher nicht wirklich sehr hilfreich ... –