У меня есть таблица prestations, и я хочу сгруппировать все prestations по году-месяцу из созданного столбца (дата).
Я пробовал группировать по ГОД() и МЕСЯЦ(), но он возвращает только 1 строку. Например, я хочу:
2019-01:
престанция 1
престанция 2 ...
2019-02:
престанция 1
...
Данные базы данныхСтруктура базы данных
Как я могу сделать это в SQL или в доктрине? Спасибо
спасибо за ваш ответ, я добавил скрин в свой пост.


Вы можете получить значения года и месяца из поля даты, затем соединить их с помощью CONCAT, чтобы создать поле год-месяц, а затем сгруппировать его. Что-то вроде этого.
select CONCAT(year(mydate), '-', month(mydate)) as dateresult from test
group by dateresult;
Это MySQL, не уверен, что вы используете, и вам нужно будет ввести свои собственные имена таблиц и полей.
Спасибо за ваш ответ. Я пытался, но у меня есть 1 строка с разным CONCAT (год-месяц). Как получить все мои престанции из ГГГГ-ММ?
Извините, не уверен, что именно вы спрашиваете здесь. Можете ли вы опубликовать некоторые данные из вашей таблицы, чтобы я мог видеть, как она структурирована?
Я добавил 2 экрана на свой вопрос. Мои данные и моя структура. Спасибо за помощь
ОК, возможно, это поможет, попробуйте запустить это для своей таблицы select CONCAT(year(created), '-', month(created)) as dateresult, label from test group by dateresult, label; Если вы измените свои данные, чтобы они имели другие значения (например, если у вас есть test1, test2, test3 и т. д. в поле метки, результирующие данные будут выглядеть немного более значимыми.
Спасибо, я добавил $prestations = []; foreach ($results as $result){ $prestations[$result['dateresult']][] = $result; } и получил свой массив, как и хотел, спасибо!
Не могли бы вы привести пример своей таблицы, я хотел бы увидеть, в каком формате ваши даты. И да, вы можете сделать это в SQL, но, возможно, вам следует проанализировать даты.