Учитывая существующие данные и группировку задач и дат, я ожидаю, что следующий DQL даст 1448 результатов:
<?php
$query = $this->getEntityManager()
->createQuery(
<<<DQL
SELECT t, SUM(a.hours) hours, a.date
JOIN AppBundle\Entity\Task t
JOIN AppBundle\Entity\Actual a WITH a.Task=t
GROUP BY t, a.date
ORDER BY t.taskCode, a.date
DQL
);
$sql = $query->getSQL();
$results = $query->getResult();
Сгенерированный SQL действительно возвращает ожидаемый набор результатов. Однако $ results содержит только одну запись для каждой задачи (21). В каждом из них присутствует только последняя дата и соответствующая сумма часов.
Если я переключаю SELECT с "t" на "t.TaskId", он возвращает все 1448 записей, но затем я сталкиваюсь с несчастной задачей восстановления всех объектов Task по факту.
Я что-то упускаю из предложения GROUP BY или как получить результаты полезным способом?