Doctrine 2 Querybuilder - два соединения приводят к неверным результатам - PullRequest
0 голосов
/ 09 июня 2019

Мне нужно сгенерировать отчеты, это прекрасно работает

    $qb = $this->getEntityManager()->createQueryBuilder();
    $qb->select('
            c.category, 
            SUM(s.fulfillable)   AS fulfillable
        ')
        ->from('App\Entity\Catalog', 'c')
        ->leftJoin('App\Entity\Stock', 's', Expr\Join::WITH, 'c.sku = s.sku')
        ->groupBy('c.category')
    ;

, но когда я также хочу суммировать результаты транзакций (несколько), моя выполнимая сумма больше не верна

    $qb = $this->getEntityManager()->createQueryBuilder();
    $qb->select('
            c.category, 
            SUM(s.fulfillable) AS fulfillable,
            SUM(t.sold)        AS sold  
        ')
        ->from('App\Entity\Catalog', 'c')
        ->leftJoin('App\Entity\Stock', 's', Expr\Join::WITH, 'c.sku = s.sku')  // Only one Stock
        ->leftJoin('App\Entity\Transaction', 't', Expr\Join::WITH, 'c.sku = t.sku') // Multiple Transactions
        ->groupBy('c.category')
    ;

Есть ли решение для таких случаев в Doctrine ORM?Или я должен использовать необработанные SQL-запросы с подвыборками.

Спасибо и наилучшими пожеланиями

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