Получение несуществующего месяца / недели / года при использовании группы MySql по предложению с функциями даты месяц / неделя / год - PullRequest
0 голосов
/ 14 апреля 2009

Я пытаюсь реализовать запрос, где я использую агрегаты для суммирования определенных значений, а затем группирую по функциям даты mysql (месяц | год | неделя). Эти группы по пунктам не возвращают несуществующие месяцы ИЛИ год ИЛИ неделю соответственно по понятным причинам. Мне было интересно, есть ли способ получить их?

Ответы [ 2 ]

0 голосов
/ 15 апреля 2009

Должно ли решение быть полностью в MySQL? Если это запрос к веб-приложению, я бы написал его, чтобы найти пропущенные строки и вставить их в выходные данные.

0 голосов
/ 14 апреля 2009

Вам необходимо создать фиктивную таблицу:

CREATE TABLE t_dummy (num int PRIMARY KEY);

, заполните и используйте в OUTER JOIN:

SELECT  @start + INTERVAL num DAY, SUM(mytable.value)
FROM    t_dummy
LEFT JOIN
        mytable
ON      mytable.datetime >= @start + INTERVAL num DAY
        AND mytable.datetime < @start + INTERVAL num + 1 DAY
WHERE   t_dummy.num BETWEEN @start and @start + @days

Вам нужно столько последовательных NUM в фиктивной таблице, сколько дней вы хотите охватить своим отчетом.

К сожалению, MySQ L не имеет встроенного генератора строк .

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