Нужна помощь в создании представления, которое содержит две разные суммы

0

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

CREATE VIEW riders AS выберите ridelog. uid AS rid, sum (ridelog. distance) AS distance из ridelog группы ridelog. uid

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

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

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

Теги:

1 ответ

3
Лучший ответ

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

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 в качестве ее параметра.

  • 0
    Вы получили это точно, спасибо. Я не знал, что смогу встроить if () в sum ()!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню