问题描述
我有一个“砝码”表,其中有各种摄像机的砝码数量。 我想对这台相机的最后一个数字求和,因此我正在使用两个查询。 第一个查询为每个摄像机选择最大ID,第二个查询为这些ID选择重量数。
public function maxIds($cameras)
{
return $this->createQueryBuilder("c")
->select('MAX(c.id) ')
->where('c.camera IN (:value)')
->setParameter('value',$cameras)
->groupBy('c.camera')
->getQuery()
->getArrayResult();
}
public function totalWeight($ids)
{
return $this->createQueryBuilder("c")
->select('SUM(c.number)')
->where('c.id IN (:value)')
->setParameter('value',$ids)
->getQuery()
->getOneOrNullResult();
}
这两个查询工作正常,但是我想将它们组合成一个查询。 我正在尝试:
public function testWeight($cameras)
{
$qr = $this->createQueryBuilder('c')
->select('MAX(c.id) ')
->where('c.camera IN (:value)')
->setParameter('value',$cameras)
->groupBy('c.camera');
$qr->andWhere($qr->expr()->in('c.id',$this->_em->createQueryBuilder()
->select('SUM(c.number)')
->getDQL()
));
return $qr->getQuery()
->getOneOrNullResult();
}
但是我不能成功。 我该如何解决这个问题?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)