2016-04-28 6 views
0

Wir versuchen, eine Analyse zu machen, wie viele Mitarbeiter in jeder Abteilung in jeder Stunde zu Trend- und Prognosezwecken vorhanden sind.Wie erstellt man eine Tabelle in SQL und führt Kopfzähle in den jeweiligen Stunden durch

Das Bild unten ist das Ergebnis Ich mag würde
http://i.stack.imgur.com/iMtaP.png 02.00 bedeutet, die Zahl der Mitarbeiter in von 2.00 bis 02.59 Uhr getaktet bekommen am

Wir die Abfrage in Tableau Software setzen würde für die Analyse . Btw bin ich mit MSSQL 2014

Wir werden die folgenden Spalten haben die Abfrage

SHIFTA_Start  = Clock in Time (VARCHAR) 
SHIFTA_End  = Clock out Time (VARCHAR) 
EMPLOYEENAME  = Name of the Employee  
DEPARTMENT  = Department of the Employee 
ATTENDANCEDATE = Date the employee come for work (VARCHAR) 
WEEKDAYSTR  = Mon, Tues, Wednesday, Thursday, Friday 
+0

Was haben Sie schon versucht? Was ist der Cut für 2 Uhr morgens? Sie müssen bis 2 Uhr morgens oder vor 3 Uhr morgens angemeldet sein? Versuchen Sie, dies in Tableau oder SQL Server zu tun? –

+0

Ich habe versucht, Case-Statement zu verwenden, um die angehäuften Angestelltenarbeitsstunden für die einzelne Abteilung zu zählen (Frage kann auf meinem Profil gefunden werden), aber was ich erhalten möchte, ist nur der Personalbestand. 2am bedeutet die Anzahl der Mitarbeiter von 2 Uhr morgens bis 259am Uhr Ich mache in SQL-Server jetzt als wäre es ziemlich chaotisch, wenn ich es in Tableau mache, einmal fertig Ich kann die Abfragen in Tableau für die Analyse setzen. @RichBenner – Vannessa

Antwort

0

Ich hoffe, das hilft zu tun, auf Ihre Anforderung modify basiert.

SELECT DEPARTMENT, 
(SELECT COUNT(EMPLOYEENAME) FROM TABLE WHERE DATEPART(HH,SHIFTA_START) <= 1 AND DATEPART(HH,SHIFTA_END) >= 2 AND DEPARTMENT = T.DEPARTMENT) AS '2AM', 
(SELECT COUNT(EMPLOYEENAME) FROM TABLE WHERE DATEPART(HH,SHIFTA_START) <= 2 AND DATEPART(HH,SHIFTA_END) >= 3 AND DEPARTMENT = T.DEPARTMENT) AS '3AM', 
. 
. 
. 
. 
FROM TABLE T 
WHERE ATTENDANCEDATE = GETDATE() 
GROUP BY DEPARTMENT 
ORDER BY DEPARTMENT