通过在学说中连接来使用group

时间:2016-08-29 10:34:32

标签: php symfony doctrine-orm doctrine

我正在使用symfony2。我的查询在sql中工作,但它在doctrine中不起作用。请帮我找到答案。

SQL查询:

select v.date,v.time, sum(v.volume) as 'volume' 
from volume_vwus v 
where v.domain like 'www.vw.com' 
    and v.date between '2016-08-05' and '2016-08-29' 
    and v.cdn='EdgeCast' 
group by week(concat(v.date,v.volume));

DQL:

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

$lesVolumes = $em->createQuery("select v.date,v.time, sum(v.volume) as volume from AppBundle:Volume$tb v where v.domain like '%$domain%' and v.date between '$dateFrom' and '$dateTo' and v.cdn='$cdn' group by week(concat(v.date, ' ',v.time))");

好吧,学说显示错误

  

在'周附近(concat(v.date,':错误:无法按未定义的标识或结果变量分组

由于

1 个答案:

答案 0 :(得分:0)

DQL不是SQL

DQL没有WEEK()功能,因为它不是SQL语言的一部分,并且在所有RMDBS中都不可用。这是MySQL的自定义功能。

您可以使用Doctrine Extensions来实现RMDB的这个(以及许多其他)自定义功能,但这样您就可以将代码提交到此特定的RMDBS。