Нужна помощь в создании представления, которое содержит две разные суммы - PullRequest
0 голосов
/ 23 июня 2009

У меня есть вид, который в настоящее время определен как

CREATE VIEW <code>riders AS выбрать ridelog. uid AS rid, сумма (ridelog. distance) AS distance из ridelog сгруппировать по ridelog. uid

Что я хотел бы сделать, это добавить второе поле, которое показывает расстояние y-t-d. т.е. сумма расстояний для поездок, которые произошли с 1 января текущего года.

Проблема в том, что я не могу понять, как сказать «текущий год» в mysql или могу ли я создать представление, в котором есть суммы с различными критериями.

Возможно ли это?

1 Ответ

3 голосов
/ 23 июня 2009

Это будет сделано - пока ваш вид всегда должен содержать столбец для текущего года.

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

При таком подходе вы не можете указать год, для которого вы хотите рассчитать расстояние. Другая возможность - использовать хранимую процедуру с параметром year.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...