我需要一些关于在教义中迭代结果的帮助。这是我的查询代码:
$consulta = $em->createQuery('
SELECT bcr, SUM(bcr.volumenAlmacenado) as vol, SUM(bcr.pesoAlmacenado) as pes
FROM ResiduoBundle:BodegaContieneResiduo bcr
WHERE bcr.fechaIngreso BETWEEN :fechaP AND :fechaA AND bcr.fechaRetiro IS NULL
GROUP BY bcr.idResiduo
');
$consulta->setParameter('fechaA', $fechaActual);
$consulta->setParameter('fechaP', $fechaPasada);
return $consulta->getResult();
当我在mysql中运行返回时没有问题。在symfony也得到了结果。现在,当我试图在树枝上循环时,我无法做到,我认为可以在我的查询中使用我的agregate函数。我希望你能给我一些线索或类似的东西。素不相识
答案 0 :(得分:0)
你应该添加mysql函数SUM的扩展,然后你可以在doctrine查询中使用SUM函数 另一种方法,您可以直接执行您的查询或本机查询的学说 尝试以下查询,您可以获得结果
$consulta = $em->executeQuery('SELECT bcr, SUM(bcr.volumenAlmacenado) as vol, SUM(bcr.pesoAlmacenado) as pes FROM ResiduoBundle:BodegaContieneResiduo bcr WHERE bcr.fechaIngreso BETWEEN :fechaP AND :fechaA AND bcr.fechaRetiro IS NULL GROUP BY bcr.idResiduo'),
array('fechaA'=> $fechaActual, 'fechaP' => $fechaPasada));
return $consulta->fetchAll();
答案 1 :(得分:0)
您还可以使用原则的本机查询
use Doctrine\ORM\Query\ResultSetMapping;
$rsm = new ResultSetMapping();
$rsm->addEntityResult('ResiduoBundle:BodegaContieneResiduo', 'bcr');
$rsm->addFieldResult('bcr', 'idResiduo', 'idResiduo');
$rsm->addFieldResult('bcr', 'volumenAlmacenado', 'vol');
$rsm->addFieldResult('bcr', 'pesoAlmacenado', 'pes');
$sqlQuery = "SELECT bcr.idResiduo as idResiduo, SUM(bcr.volumenAlmacenado) as vol, SUM(bcr.pesoAlmacenado) as pes
FROM ResiduoBundle:BodegaContieneResiduo bcr
WHERE bcr.fechaIngreso BETWEEN :fechaP AND :fechaA
AND bcr.fechaRetiro IS NULL
GROUP BY bcr.idResiduo";
$query = $em->createNativeQuery($sqlQuery, $rsm)
->setParameter('fechaA', $fechaActual);
->setParameter('fechaP', $fechaPasada);
$query->getResult();