Итоговый итог сетки Yii2 для каждой строки SqlDataProvider

У меня есть gridview с атрибутом amount, Я хотел бы сделать промежуточный итог (или промежуточный итог / сведение) amount для каждого ряда. Например:

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

Есть ли способ сделать это? Можете ли вы указать мне правильное направление? Я понятия не имею, как это сделать, и я не нахожу никакой соответствующей информации, извините.

Зики: мой $dataProvider является SqlDataProvider поэтому я не могу использовать это решение. Можете ли вы помочь мне немного узнать, как я могу настроить его на SqlDataProvider?

Я имею в виду такие значения, как $data["amount"], Кажется, у меня нет key или же index, может ли так быть? Я собираюсь:

Неопределенное смещение: 0 (или 1 или...)

Было бы хорошо также, если бы было решение SQL

ОБНОВЛЕНИЕ: я нашел простое решение SQL для этого:

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

Самая важная деталь здесь: rows unbounded preceding

Если вы хотите получить такую ​​сумму ( сдвиньте одну строку ниже):

   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

0 ответов

Я нашел простое решение SQL для этого:

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

Самая важная деталь здесь: rows unbounded preceding

Если вы хотите получить такую ​​сумму ( сдвиньте одну строку ниже):

   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

Другие вопросы по тегам