1

DQL/Doctrine2で記述する必要のある複雑なクエリがあります。疑似クエリ(余分な結合/計算をすべて省略しました)は次のとおりです。

SELECT 
    a, SUM(b)
FROM (
    SELECT 
        a, SUM(b)
    FROM tbl
    GROUP BY a,c    
) calc
GROUP BY a

最初に列aとcでグループ化し、その後で再びグループ化して選択します。

選択部分の(擬似)コードは、querybuilderでは簡単です。

$queryBuilder = $this->entityManager->createQueryBuilder();
$queryBuilder
    ->select(array('tbl'))
    ->addSelect('SUM(tbl.b)')
    ->from('\Model\MyModel', 'tbl')
    ->groupBy('a')
    ->addGroupBy('c');
$query = $queryBuilder->getQuery();
$results = $query->getResult();

ただし、この結果を再度クエリするにはどうすればよいですか?
これは可能ですか?
または、どういうわけかそれらを1つのqueryBuilderオブジェクトにまとめることができますか?

4

0 に答える 0