2013-11-14 2 views
1

Я хочу использовать функцию SUM в собственном запросе Doctrine, но я все равно получаю пустые результаты. Вот мой код:Использование SQL-функций в родных запросах Doctrine

$em = $this->getDoctrine()->getManager(); 

    $rsm = new ResultSetMapping(); 
    $rsm->addEntityResult('AndreiStatisticsBundle:Visit', 'v'); 
    $rsm->addScalarResult('counter', 'counter'); 
    $rsm->addScalarResult('created_at', 'created_at'); 

    $query = $em->createNativeQuery(
     'SELECT SUM(counter) FROM visits GROUP BY created_at', 
     $rsm 
    ); 

интересно, потому что, если я не использую функцию SUM код будет работать:

$em = $this->getDoctrine()->getManager(); 

    $rsm = new ResultSetMapping(); 
    $rsm->addEntityResult('AndreiStatisticsBundle:Visit', 'v'); 
    $rsm->addScalarResult('counter', 'counter'); 
    $rsm->addScalarResult('created_at', 'created_at'); 

    $query = $em->createNativeQuery(
     'SELECT counter FROM visits GROUP BY created_at', 
     $rsm 
    ); 

Может кто-то выясняет, что мне не хватает?

ответ

1

Вы можете попробовать это?

$em = $this->getDoctrine()->getManager(); 

$repository = $em->getRepository('AndreiStatisticsBundle:Visit'); 
$qb = $repository->createQueryBuilder('v'); 
$qb->select('SUM(v.counter) AS counterSum'); 
$qb->groupBy('v.created_at'); 

$count = $qb->getQuery()->getSingleScalarResult(); 
+0

Я получаю строку [Semantical Error] 0, col 31 около 'FROM Andrei \ StatisticsBundle \ Entity \ Visit': Ошибка: Class 'FROM' не определен. – zuzuleinen

+0

Можете ли вы разместить вывод $ qb-> getQuery() -> getDQL(); ? –

+0

"SELECT SUM (v.counter) AS count FROM Andrei \ StatisticsBundle \ Entity \ Visit v GROUP BY v.created_at" – zuzuleinen

Смежные вопросы