在我的Symfony应用程序中,我有一个实体'Project',它包含两个字段:'createdOn'(type = date)和'individual'。个人可以在“项目”中多次出现。
_created_On_|_individual_id
2012.12.01 | 3
2012.12.24 | 5
2013.01.10 | 9
我正在尝试构建一个查询来计算以'createdOn'分组的所有不同个体,以便按月分类。并且必须可以为查询设置日期范围。
到目前为止我的查询:
'SELECT p.createdOn, COUNT (DISTINCT p.individual)
FROM ...\DossierBundle\Entity\Project p
WHERE p.createdOn
BETWEEN :name1
AND :name2'
)->setParameters(array(
'name1' => $startDate,
'name2' => $endDate,
))
这不能完全得到我想要的结果
_DATE____|_Number_of_Individuals
Dec 2012 | 2
Jan 2013 | 1
但我得到了
__DATE_____|_Number_of_Individuals
2012.12.01 | 1
2012.12.24 | 1
2013.01.10 | 1
谷歌也没有帮助我,所以我们非常感谢任何支持。
弗洛
答案 0 :(得分:0)
你需要使用自定义日期函数扩展学说,并且要小心,因为你不能使用group by with functions,所以你必须欺骗教条。
看看:
http://www.doctrine-project.org/blog/doctrine2-custom-dql-udfs.html
这是一天本机mysql函数的例子:
并按问题阅读该小组并解决(使用as):
http://www.doctrine-project.org/jira/browse/DDC-1236
我需要按日期分组访问(没有时间),所以我写了带日期扩展名的dql查询:
select count(v) as visit_count , DATE(v.created_at) as day_created_at from Shorten\Entity\Visit v group by day_created_at
希望它有所帮助。