2009-06-23 4 views
0

Ich habe eine Ansicht, die derzeit alsBrauchen Sie Hilfe Erstellen einer Ansicht, die zwei verschiedene Summen enthält

CREATE VIEW riders AS wählen ridelog definiert ist. uid AS rid, Summe (ridelog. distance) AS distance von ridelog Gruppe von ridelog. uid

Was ich tun möchte, ist ein zweites Feld hinzufügen, das die Entfernung y-t-d zeigt. die Summe der Entfernungen für Fahrten, die seit dem 1. Januar des laufenden Jahres stattgefunden haben.

Das Problem ist, ich kann nicht herausfinden, wie man "aktuelles Jahr" in MySQL sagt oder wenn ich eine Ansicht erstellen kann, die Summen mit verschiedenen Kriterien in ihnen hat.

Ist das möglich?

Antwort

3

Dies wird es tun - solange Ihre Ansicht immer eine Spalte für das laufende Jahr enthalten sollte.

CREATE VIEW riders AS 
    SELECT 
     ridelog.uid AS rid, 
     SUM(ridelog.distance) AS distance, 
     SUM(IF(YEAR(ridelog.<<date_time_column>>) = YEAR(NOW()), ridelog.distance, 0) AS distanceThisYear 
    FROM ridelog 
    GROUP BY ridelog.uid 

Mit dieser Methode können Sie nicht das Jahr angeben, für das die Entfernung berechnet werden soll. Eine andere Möglichkeit wäre, eine gespeicherte Prozedur mit dem als Parameter zu verwenden.

+0

Sie haben es genau, danke. Ich wusste nicht, dass ich ein if() in eine Summe() einbetten könnte! –

Verwandte Themen