这是我的查询。我希望得到数量和数量的总和。
function getCountByType($inventory_type) {
$this->db->select_sum('quantity','total_quantity');
if($inventory_type)
$this->db->where('inventory_type',$inventory_type);
$query = $this->db->get($this->tableInventory);
$resultdata = $query->result();
$result['total_count'] = $query->num_rows();
$result['total_quantity'] = $resultdata[0]->total_quantity;
return $result;
}
它为我提供了正确的数量总和,但num_rows
每次都返回1
。即使我有10
条记录,它也只会提供1
条记录,而当我remove
select_sum
时,它会正常工作。
答案 0 :(得分:0)
Sum是聚合函数,它最后将您的行分组为单个放置求和查询。
SERIALIZABLE
答案 1 :(得分:0)
select_sum
表示它会为您提供所有行的摘要,而不是单个行。
你需要做两个查询,或者计算自己的总和(建议)
答案 2 :(得分:0)
drop_down()
是SUM()
函数。它将获取为组返回的所有行并将其添加。
由于您没有aggregate
子句,因此它会将所有行的值相加,即使没有。然后将总数作为单行返回,因此应该只有GROUP BY
您可以使用1 row.
获取group_by
的总数
row
答案 3 :(得分:0)
我想你想要总数和总数量。 只需用此
替换行$this->db->select_sum('quantity','total_quantity');
即可
$this->db->select('SUM(quantity) total_quantity,COUNT(quantity) total_count');
现在你可以通过这种方式获得它们(在$resultdata = $query->result();
之后)
$result['total_count'] = $resultdata[0]->total_count;
$result['total_quantity'] = $resultdata[0]->total_quantity;
注意
你可以使用它,因为结果会返回一条记录
$resultdata = $query->row();
$result['total_count']=$resultdata->total_count;
$result['total_count']=$resultdata->total_quantity;