2017-08-22 2 views
0

ich diese Tabelle bekam:Gesamtzahl der Arbeitsstunden

CardID  | timein     | timeout 
------------------------------------------------------- 
4946  |8/11/2017 2:00:00 PM  | 8/11/2017 3:30:00 PM 
6422  |8/5/2017 1:15:00 PM  | 8/5/2017 2:45:00 PM 
6422  |8/12/2017 1:15:00 PM  | 8/12/2017 2:45:00 PM 
6538  |8/7/2017 5:30:00 PM  | 8/7/2017 8:30:00 PM 
6538  |8/4/2017 8:00:00 AM  | 8/4/2017 11:00:00 AM  
6538  |8/3/2017 5:30:00 PM  | 8/3/2017 8:30:00 PM 
7442  |8/10/2017 9:00:00 AM  | 8/10/2017 12:00:00 PM 
7442  |8/8/2017 4:00:00 PM  | 8/8/2017 7:00:00 PM 
7442  |8/1/2017 10:00:00 AM  | 8/1/2017 1:00:00 PM 
7442  |8/3/2017 9:00:00 AM  | 8/3/2017 12:00:00 PM  
7442  |8/1/2017 4:00:00 PM  | 8/1/2017 7:00:00 PM 
7442  |8/2/2017 4:00:00 PM  | 8/2/2017 7:00:00 PM 
7442  |8/15/2017 4:00:00 PM  | 8/15/2017 7:00:00 PM  
7442  |8/9/2017 4:00:00 PM  | 8/9/2017 7:00:00 PM 
7442  |8/1/2017 10:00:00 AM  | 8/1/2017 1:00:00 PM 
9330  |8/9/2017 4:00:00 PM  | 8/9/2017 7:00:00 PM 
9330  |8/1/2017 10:00:00 AM  | 8/1/2017 1:00:00 PM 

konnte ich für jede Person, die die Gesamtdauer pro Zeile erhalten. Ich möchte jedoch die Gesamtsumme der Stunde pro Monat erhalten. Beispiel: cardID 7442 hat sich für 5 Tage eingecheckt. Ich möchte die Stunden dieser 5 Tage zusammenfassen.

+1

Da Sie bereits "die Gesamtzeit pro Zeile pro Person" erhalten, können Sie sie SUMEN und GROUP BY für jede cardID. –

+1

Sie sollten Ihre Frage mit der von Ihnen verwendeten Datenbank versehen. –

+0

Ja, es funktioniert jetzt. Danke – Jay2012

Antwort

2
SELECT 
    CardID, 
    DATEPART(mm, timein), 
    SUM(DATEPART(hh, timeout - timein)) 
FROM tempdb..workhours 
GROUP BY CardID, 
     DATEPART(mm, timeout) 

Dies wird Ihnen die Summe von CardID pro Monat geben. Entfernen Sie DATEPART(mm, timein), wenn Sie sich nicht für den bestimmten Monat interessieren.

+0

Danke Natascha, es funktioniert jetzt. – Jay2012

Verwandte Themen