Sum Subselect

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Sum Subselect

    Hi,

    ich häng grad an nem SUM Subselect fest.
    Es soll eine Verweildauer aus einer Tabelle für verschiedene Zeiträume ausgelesen werden. Ich dachte dabei an SUM und mehrere bedingten Abfragen.

    PHP-Code:
    $sql "SELECT user,
            (SELECT SUM(zeit) FROM z_zeiterfassung 
                              WHERE group = 4 AND MONTH(datum) = MONTH(NOW()) ) as aktmonat,
            (SELECT SUM(zeit) FROM z_zeiterfassung 
                              WHERE group = 4 AND MONTH(datum) = MONTH(NOW())-1) as vormonat,
            (SELECT SUM(zeit) FROM z_zeiterfassung
                              WHERE group = 4 AND MONTH(datum) >= MONTH(NOW())-3) as letzendrei
            FROM z_zeiterfassung GROUP BY user"

    Damit erhalte ich allerdings für alle user die gleichen Zeitwerte. Wenn ich das Group BY user in den jeweiligen Subselect einfügen bekomme ich eine Fehlermeldung dass der Subquery mehr als 1 Zeile enthält.
    Wie bekomme ich es hin das für jeden user seine eigene verweildauer angezeigt wird ich steh da grad mächtig aufm Schlauch??

  • #2
    Probiere mal so:

    PHP-Code:
    $sql "SELECT a.user,
            (SELECT SUM(zeit) FROM z_zeiterfassung 
                              WHERE group = 4 AND MONTH(datum) = MONTH(NOW()) AND user=a.user) as aktmonat,
            (SELECT SUM(zeit) FROM z_zeiterfassung 
                              WHERE group = 4 AND MONTH(datum) = MONTH(NOW())-1  AND user=a.user) as vormonat,
            (SELECT SUM(zeit) FROM z_zeiterfassung
                              WHERE group = 4 AND MONTH(datum) >= MONTH(NOW())-3  AND user=a.user) as letzendrei
            FROM z_zeiterfassung a GROUP BY user"

    Kommentar

    Lädt...
    X