我正在尝试计算groupby查询的总和,并将该值发送到yii2中的视图。我当前的代码获取并显示正确的分组但总和不起作用。
这是控制器代码:
public function actionIndex()
{
if( Yii::$app->request->post('search') )
{
$from = Yii::$app->request->post('from');
$to = Yii::$app->request->post('to');
switch( Yii::$app->request->post('activity') )
{
case 'bills':
$searchModel = new Bill();
$query = $searchModel::find();
$query->where(['BETWEEN', 'teis_bill_purchase_date', $from, $to]);
// The problem is in the below sum
$query->joinWith('inventory');
$query->groupBy('teis_inventory_id');
$query->sum('teis_bill_override_cbm');
$query->all();
$dataProvider = new ActiveDataProvider([
'query' => $query,
]);
return $this->render('index', [
'searchModel' => $searchModel,
'dataProvider' => $dataProvider,
'show_results' => 1
]);
break;
}
}
return $this->render('index');
}
我有不同类型的库存,每个库存都有多个帐单。我正在尝试创建一个报告,获取特定日期范围($ from,$ to)之间的帐单数量,按库存类型对它们进行分组,并汇总每种类型的值并显示该类型的值。 / p>
这是我的观看代码:
if( isset($show_results) )
{
print(GridView::widget([
'dataProvider' => $dataProvider,
'filterModel' => $searchModel,
'columns' => [
['class' => 'yii\grid\SerialColumn'],
[
'attribute'=>'teis_bill_id',
'value'=>'teis_bill_id',
],
'inventory.teis_inventory_type',
'teis_bill_pieces',
'teis_bill_override_cbm',
'teis_bill_sale_price',
'teis_bill_profit',
['class' => 'yii\grid\ActionColumn'],
],
]));
}
我已经包含了该视图的代码,因为我不知道如何在得到它之后显示该总和!
任何帮助将不胜感激。 谢谢!
答案 0 :(得分:0)
我认为问题与RecordCount
字段
尝试选择你的字段和总和使用总和('teis_bill_override_cbm')作为teis_bill_override_cbm
sum('teis_bill_override_cbm')
答案 1 :(得分:0)
这里的问题是$query->all()
将结果作为数组返回,但结果不会保存在任何变量中。
请尝试$var = $query->all();
,以保存已执行语句的结果。