Differenzen zwischen verschiedenen gruppen (SQL)



  • Hallo,
    also ich hab folgende Tabellenstruktur (SQL):

    Tabelle Log:

    Name    |StTime|EndTime
    -----------------------
    Alex    |1     |5
    Florian |3     |4
    Dieter  |2     |38
    Alex    |8     |17
    

    ....
    Im Moment benutze ich folgende Abfrage umd die Gesamtzeiten aller Benutzer zu
    ermitteln:

    SELECT Name, SUM(EnTime-StTime) as "Zeit" FROM Log 
    	GROUP BY Name 
    	ORDER BY Zeit DESC
    

    Jetzt möchte ich die Differenz der Gesamtzeit eines Benutzers in Bezug auf die Gesamtzeiten alle anderen Wissen.
    Also z.B.:

    Benutzer: Alex (hat im obrigen beispiel die Gesamtzeit von (5-1)+(17-8)=13 )

    Erwartete Ausgabe:

    Benutzer | Differenz
    --------------------
    Dieter   | 23
    Florian  | -12
    

    Das bedeutet Dieter hat 23 mehr und Florian 12 weniger als alex.

    Wie muss ich vorgehen um dieses Problem zu lösen?

    Ps: ich freue mich auch über Links und Funktionsnamen 🙂



  • ein wenig in etwa, nur musst du dir alex noch rausfischen, der wird mit ausgewertet (mach einen inneren select)

    SELECT name, SUM( entime - sttime - (
    SELECT SUM( entime - sttime )
    FROM log
    WHERE name = 'Alex' ) ) AS "Zeit"
    FROM log
    GROUP BY name
    ORDER BY Zeit DESC



  • Herzlichen Dank dir 🙂


Anmelden zum Antworten