Yii2 gridview 运行 每个 SqlDataProvider 行的总数
Yii2 gridview running total for each SqlDataProvider row
我有一个 gridview
属性 amount
。我想为每一行做 运行 总计 (或小计/汇总)amount
。例如:
amount rollup
1. 2 2
2. 3 5
3. 2 7
4. 1 8
有办法吗?你能给我指出正确的方向吗?我不知道该怎么做,我没有找到任何相关信息,抱歉。
Ziki:我的 $dataProvider
是 SqlDataProvider
所以我不能使用 解决方案。你能帮我解决一下如何将其调整为 SqlDataProvider
吗?
我指的是 $data["amount"]
这样的值。我好像没有key
和index
,可以吗?我得到:
Undefined offset: 0 (or 1 or...)
如果有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
我有一个 gridview
属性 amount
。我想为每一行做 运行 总计 (或小计/汇总)amount
。例如:
amount rollup
1. 2 2
2. 3 5
3. 2 7
4. 1 8
有办法吗?你能给我指出正确的方向吗?我不知道该怎么做,我没有找到任何相关信息,抱歉。
Ziki:我的 $dataProvider
是 SqlDataProvider
所以我不能使用 SqlDataProvider
吗?
我指的是 $data["amount"]
这样的值。我好像没有key
和index
,可以吗?我得到:
Undefined offset: 0 (or 1 or...)
如果有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