Announcement

Collapse
No announcement yet.

SQL 2008, Über mehrere Tage summieren

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • SQL 2008, Über mehrere Tage summieren

    Moin,

    hättet ihr mir einen Tipp, wie ich im SQL Minuten bzw. Stunden über Tage hinweg addieren kann?

    Beispiel (Schule Start bzw. Schule Ende ist jeweils ein datetime Feld!):
    Schueler -- Schule Start --------- Schule Ende
    abcdef ---- 01.03.2012 08:00 --- 01.03.2012 12:30
    abcdef ---- 01.03.2012 13:00 --- 01.03.2012 14:30
    abcdef ---- 02.03.2012 07:00 --- 01.03.2012 14:55
    abcdef ---- 03.03.2012 13:00 --- 01.03.2012 17:30
    usw

    Jetzt möchte ich wissen, wie wie Stunden ich (abcdef) in dieser Woche in der Schule war. Wie kann ich dies herausfinden?

    Danke & Gruß

  • #2
    Originally posted by Laie View Post
    Wie kann ich dies herausfinden?
    Mit DateDiff, DatePart und Group By...
    [HIGHLIGHT="SQL"]WITH Data (Schueler, Start, Ende) AS
    ( SELECT 'def', CONVERT(DATETIME,'2012-03-09 08:00:00',120), CONVERT(DATETIME,'2012-03-09 12:30:00',120) UNION ALL
    SELECT 'def', CONVERT(DATETIME,'2012-03-01 13:00:00',120), CONVERT(DATETIME,'2012-03-01 14:30:00',120) UNION ALL
    SELECT 'def', CONVERT(DATETIME,'2012-03-02 07:00:00',120), CONVERT(DATETIME,'2012-03-02 14:55:00',120) UNION ALL
    SELECT 'def', CONVERT(DATETIME,'2012-03-03 13:00:00',120), CONVERT(DATETIME,'2012-03-03 17:30:00',120) UNION ALL
    SELECT 'abc', CONVERT(DATETIME,'2012-03-09 08:00:00',120), CONVERT(DATETIME,'2012-03-09 13:00:00',120) UNION ALL
    SELECT 'abc', CONVERT(DATETIME,'2012-03-01 13:00:00',120), CONVERT(DATETIME,'2012-03-01 14:30:00',120) UNION ALL
    SELECT 'abc', CONVERT(DATETIME,'2012-03-02 08:00:00',120), CONVERT(DATETIME,'2012-03-02 11:15:00',120) UNION ALL
    SELECT 'abc', CONVERT(DATETIME,'2012-03-03 13:00:00',120), CONVERT(DATETIME,'2012-03-03 17:30:00',120)
    )
    SELECT Schueler
    , DATEPART (WK, Start) AS Week
    , SUM (DATEDIFF (MINUTE, Start, Ende)) AS Minuten
    FROM Data
    GROUP BY Schueler
    , DATEPART (WK, Start) [/HIGHLIGHT]
    [HIGHLIGHT="Ergebnis"]Schueler Week Minuten
    -------- ----------- -----------
    abc 10 555
    abc 11 300
    def 10 835
    def 11 270[/HIGHLIGHT]

    Comment

    Working...
    X