2016-01-05 67 views
1

我需要一些關於迭代結果的教條的幫助。這是我的代碼查詢:如何從主體查詢迭代到SUM結果

$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中也可以得到結果。現在,當我嘗試在樹枝中循環時,我無法做到,我認爲可以在我的查詢中使用我的聚合函數。我希望你能給我提供一些線索或有關此事的信息。素不相識的

+3

您很可能會收到混合結果。在這種情況下,當您遍歷結果集時,應該訪問每個元素「row [0]」的第一個鍵,例如,它包含實際的對象。其餘的鍵代表你的聚合函數的別名。 – Artamiel

+1

您可以使用{{dump(entities)}}來調試 –

回答

0

你應該加入MySQL的SUM函數的擴展,那麼你可以在教義查詢 另一種方式,你可以直接執行查詢或學說 的本地查詢嘗試以下使用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(); 
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(); 
+0

中的內容我運行您的代碼,但現在會顯示錯誤。 '價值:BodegaContieneResiduo沒有在params數組中找到。 Params數組鍵應該是「BodegaContieneResiduo」'。你對這個問題有一些線索嗎?我在[doctrine文檔](http://doctrine-orm.readthedocs.org/projects/doctrine-orm/en/latest/reference/native-sql.html)中看到了文檔,但是它與您在答案中顯示的相同。 –

+1

我有更新查詢...請嘗試這一個..並讓我知道如果面臨問題 –

+0

這項工作現在。謝謝阿肖克 –