Php 条令将行分组为一行,合计不起作用的数量
我有一个条令查询,我正在尝试将类似的行分组,并对它们的数量(qty)求和。看起来像这样,但它不起作用Php 条令将行分组为一行,合计不起作用的数量,php,mysql,sql,symfony,doctrine-orm,Php,Mysql,Sql,Symfony,Doctrine Orm,我有一个条令查询,我正在尝试将类似的行分组,并对它们的数量(qty)求和。看起来像这样,但它不起作用 public function getProducts($id, $account_id){ $query = $this->getEntityManager() ->createQuery(' SELECT p, pr, sum(p.qty) as qty FROM WIC\PurchaseOrder
public function getProducts($id, $account_id){
$query = $this->getEntityManager()
->createQuery('
SELECT p, pr, sum(p.qty) as qty
FROM WIC\PurchaseOrderBundle\Entity\PurchaseOrderProductsStatus p
JOIN p.product pr
WHERE p.inventoryLocation = :id
AND p.account = :account_id
GROUP BY p.product')
->setParameter('id', $id)
->setParameter('account_id', $account_id);
try{
return $query->getArrayResult();
}catch (\Doctrine\ORM\NoResultException $e) {
return $e;
}
}
我得到以下错误:
Key "product" for array with keys "0, qty" does not exist in my twig template
如果我删除“sum(p.qty)as qty”,它可以正常工作,只是不能提供我分组所依据的列的总和
这是我的小树枝模板中的循环
{% for productAction in productActions %}
<tr>
<td>{{ productAction.product.id }}</td>
<td>{{ productAction.product.sku }}</td>
<td>{{ productAction.product.name }}</td>
<td>{{ productAction.qty }}</td>
<td></td>
</tr>
{% endfor %}
{%forProductActions%}
{{productAction.product.id}
{{productAction.product.sku}
{{productAction.product.name}
{{productAction.qty}
{%endfor%}
任何人都知道为什么会这样
结果的性质可以有两种形式:纯和混合。
默认情况下,结果类型是纯的,但只要标量值(例如聚合值或不属于实体的其他标量值)出现在DQL查询的选择部分,结果就会变得混合。
为了适应标量值,混合结果的结构与纯结果不同
纯结果通常如下所示:
array(
'0' => obj1,
'1' => obj2
);
另一方面,混合结果具有以下一般结构:
array(
'0' => array(
'0' => Obj1,
'qty' => your scalar value sum(p.qty)
),
'1' => array(
'0' => Obj2,
'qty' => your scalar value sum(p.qty)
),
);