Announcement

Collapse
No announcement yet.

sum(spalte) bezogen auf group by

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

  • sum(spalte) bezogen auf group by

    Hallo zusammen,

    ich weiß nicht ob's an einer Denkblockade liegt oder obs gar nicht geht, aber ich komm gerade einfach nicht auf die Lösung des nachfolgenden Problems:

    In unserem Firmeninternen Zeiterfassungssystem, dass ich irgendwann mal verbrochen habe gibt's ne Tabelle "Stunden" in der - über die Felder "user_id", "stunden", "projekt_id" und "datum" - von allen Usern die Stunden erfasst sind, die jeder User pro Tag pro Projekt erfasst hat.

    Nun möchte ich anhand einer übergebenen Projekt-ID gerne folgende Ausgabe erhalten:

    Jahr:2005 - Monat: 01

    Summe Stunden User 1: XY
    Summe Stunden User 2: XY

    Jahr:2005 - Monat: 02

    Summe Stunden User 1: XY
    Summe Stunden User 2: XY

    usw. bis zum aktuellen Jahr.

    Sprich: eine Übersicht, wieviele Stunden von wem auf das Projekt (dessen ID vorher übergeben wurde) pro Monat gebucht wurden.

    Kann man das irgendwie mit einem SQL-Befehl bewältigen.
    Ich hoff ihr wisst was ich meine...

    Ansonsten müsst ich halt ne Verschachtelung von verschiedenen Abfragen und Schleifen machen, aber wär halt edel, wenn das alles mit einem SQL-Befehl gehen würd...

    Bin für jeden Tipp dankbar.

    Viele Grüße

    Daniel

  • #2
    Du gruppierst und sortierst nach Jahr,Monat,User und Summierst die Stunden entspr., für deine gewünschte Ausgabe suchst du nach Gruppenwechsel.
    Bei SQL-Code bitte beachten: Formatierung von SQL in Beiträgen

    Comment


    • #3
      Gruppenwechsel

      Hi,

      erstmal danke für deine Antwort.

      Ich habs jetzt so gemacht:

      SELECT Month(datum), YEAR(datum), user_id, sum(stunden) FROM `stunden` WHERE projekt_id=126 GROUP BY MONTH(datum), YEAR(datum), user_id ORDER BY datum

      Ich denk das müsste stimmen.

      Aber du hast die Sache mit dem Gruppenwechsel angesprochen.
      Brauch ich in diesem Fall zwar glaub ich nicht unbedingt, aber was genau hats denn damit auf sich?

      Viele Grüße

      Der Daniel

      Comment


      • #4
        GROUP BY MONTH(datum), YEAR(datum), user_id
        Sinniger wäre die Reihenfolge Jahr, Monat, User und bei Verwendung von Aliasbezeichner sparst du dir auch die Wiederholung der Funktionen, auch das sortieren würde ich in der Reihenfolge machen.

        Übrigens verwende bitte die Formatierung für SQL

        Aber du hast die Sache mit dem Gruppenwechsel angesprochen.
        Die Abfrage liefert dir nur ein Resultset in Tabellenform, für deine gew. Ausgabe benötigst du eine sog. Gruppenwechsel innerhalb deiner Anwendung (google).
        Bei SQL-Code bitte beachten: Formatierung von SQL in Beiträgen

        Comment

        Working...
        X