每个SqlDataProvider行的Yii2 gridview运行总计

时间:2019-04-15 13:24:25

标签: gridview yii2 rollup subtotal csqldataprovider

我有一个gridview,属性为amount。我想为每行进行amount运行总计(或小计/汇总)。例如:

   amount  rollup
1.   2       2
2.   3       5
3.   2       7
4.   1       8

有没有办法做到这一点?您能指出我正确的方向吗?我不知道如何执行此操作,对不起,我找不到任何相关信息。

Ziki :我的$dataProviderSqlDataProvider,所以我不能使用this解决方案。您可以帮我一点儿如何将其调整为SqlDataProvider吗?

我指的是类似$data["amount"]的值。看来我没有keyindex,可以吗?我得到了:

  

未定义的偏移量:0(或1或...)

如果有SQL解决方案也可以

更新:我为此找到了a simple SQL solution

sum(amount) over (order by ... rows unbounded preceding)

这里最重要的细节是:rows unbounded preceding

如果您想要这样的总和(所以slide one row below):

   amount  rollup
1.   2       
2.   3       2
3.   2       5
4.   1       7

可以用window function完成:

sum(amount) over (order by ... ROWS BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING)

@Hart CO的积分

1 个答案:

答案 0 :(得分:0)

我为此找到了a simple SQL solution

sum(amount) over (order by ... rows unbounded preceding)

这里最重要的细节是:rows unbounded preceding

如果您想要这样的总和(所以slide one row below):

   amount  rollup
1.   2       
2.   3       2
3.   2       5
4.   1       7

可以用window function完成:

sum(amount) over (order by ... ROWS BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING)

@Hart CO的积分