У меня есть представление, которое в настоящее время определено как
CREATE VIEW
riders
AS выберите ridelog
. uid
AS rid
, sum (ridelog
. distance
) AS distance
из ridelog
группы ridelog
. uid
Что я хотел бы сделать, это добавить второе поле, которое показывает расстояние y-t-d. т.е. сумму расстояний для поездок, которые произошли с 1 января текущего года.
Проблема в том, что я не могу понять, как сказать "текущий год" в mysql, или если я могу создать представление, в котором есть суммы с разными критериями.
Возможно ли это?
Это сделает это - пока ваше представление всегда должно содержать столбец для текущего года.
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
в качестве ее параметра.