Access. Суммирование всех значений нарастающим итогом по месяцам

Ainur.sm
Дата: 31.01.2016 23:42:52
Как понять? И как сделать?
АКТИВ
1. Остатки денежных средств для всех значений поля «Центр»(из таб.D) (т.е. остатки по центрам финансовой ответственности). Суммирование всех значений нарастающим итогом по месяцам поля «Остаток» для всех записей, удовлетворяющих условию:
Для *КС - поле «Центр» = значение «*КС»


и так далее для всех значений поля «Центр»

2. «ИТОГО актив». Суммирование всех значений поля «Остаток» нарастающим итогом по месяцам для всех записей.
Ainur.sm
Дата: 31.01.2016 23:43:25
Ainur.sm
Дата: 01.02.2016 10:42:54
Ainur.sm,
Как сделать
суммирование всех значений нарастающим итогом по месяцам? Формируется на определенную дату нарастающим итогом с начала года
SELECT 1 AS ID, '*КС' AS Статья,
-SUM(qdfPayments.IncomePaymentSumCalc * (Month(PaymentDate) = 1)) AS Январь,
-SUM(qdfPayments.IncomePaymentSumCalc * (Month(PaymentDate) = 2)) AS Февраль,
-SUM(qdfPayments.IncomePaymentSumCalc * (Month(PaymentDate) = 3)) AS Март,
-SUM(qdfPayments.IncomePaymentSumCalc * (Month(PaymentDate) = 4)) AS Апрель,
-SUM(qdfPayments.IncomePaymentSumCalc * (Month(PaymentDate) = 5)) AS Май,
-SUM(qdfPayments.IncomePaymentSumCalc * (Month(PaymentDate) = 6)) AS Июнь,
-SUM(qdfPayments.IncomePaymentSumCalc * (Month(PaymentDate) = 7)) AS Июль,
-SUM(qdfPayments.IncomePaymentSumCalc * (Month(PaymentDate) = 8)) AS Август,
-SUM(qdfPayments.IncomeAmount * (Month(PaymentDate) = 9)) AS Сентябрь,
-SUM(qdfPayments.IncomePaymentSumCalc * (Month(PaymentDate) = 10)) AS Октябрь,
-SUM(qdfPayments.IncomePaymentSumCalc * (Month(PaymentDate) = 11)) AS Ноябрь,
-SUM(qdfPayments.IncomePaymentSumCalc * (Month(PaymentDate) = 12)) AS Декабрь, Январь + Февраль + Март + Апрель + Май + Июнь + Июль + Август + Сентябрь + Октябрь + Ноябрь + Декабрь AS Итого
FROM qdfPayments
WHERE Year(PaymentDate) AND qdfPayments.Center = '*КС'
UNION
SELECT 1 AS ID, '*Банк ФДИ' AS Статья,
-SUM(qdfPayments.IncomePaymentSumCalc * (Month(PaymentDate) = 1)) AS Январь,
-SUM(qdfPayments.IncomePaymentSumCalc * (Month(PaymentDate) = 2)) AS Февраль,
-SUM(qdfPayments.IncomePaymentSumCalc * (Month(PaymentDate) = 3)) AS Март,
-SUM(qdfPayments.IncomePaymentSumCalc * (Month(PaymentDate) = 4)) AS Апрель,
-SUM(qdfPayments.IncomePaymentSumCalc * (Month(PaymentDate) = 5)) AS Май,
-SUM(qdfPayments.IncomePaymentSumCalc * (Month(PaymentDate) = 6)) AS Июнь,
-SUM(qdfPayments.IncomePaymentSumCalc * (Month(PaymentDate) = 7)) AS Июль,
-SUM(qdfPayments.IncomePaymentSumCalc * (Month(PaymentDate) = 8)) AS Август,
-SUM(qdfPayments.IncomeAmount * (Month(PaymentDate) = 9)) AS Сентябрь,
-SUM(qdfPayments.IncomePaymentSumCalc * (Month(PaymentDate) = 10)) AS Октябрь,
-SUM(qdfPayments.IncomePaymentSumCalc * (Month(PaymentDate) = 11)) AS Ноябрь,
-SUM(qdfPayments.IncomePaymentSumCalc * (Month(PaymentDate) = 12)) AS Декабрь, Январь + Февраль + Март + Апрель + Май + Июнь + Июль + Август + Сентябрь + Октябрь + Ноябрь + Декабрь AS Итого
FROM qdfPayments
WHERE Year(PaymentDate) AND qdfPayments.Center = '*Банк ФДИ'
ПЕНСИОНЕРКА
Дата: 01.02.2016 10:51:42
Ainur.sm,

попробуйте заменить равенство на <=, получатся итоги на конец месяца

-SUM(qdfPayments.IncomePaymentSumCalc * (Month(PaymentDate) <= 1)) AS Январь,
......
Ainur.sm
Дата: 01.02.2016 11:17:53
ПЕНСИОНЕРКА,
Есть похожий пример
sdku
Дата: 01.02.2016 11:36:13
Ainur.sm,
а Вы не рассматривали вариант с отчетом (в нем эта "хотелка" реализуется очень просто)
ПЕНСИОНЕРКА
Дата: 01.02.2016 11:37:00
Ainur.sm,
мне кажется достаточно
SELECT 1 AS ID, qdfPayments.Center AS Статья, 
-SUM(qdfPayments.IncomePaymentSumCalc * (Month(PaymentDate) <= 1)) AS Январь, 
-SUM(qdfPayments.IncomePaymentSumCalc * (Month(PaymentDate) <= 2)) AS Февраль,
-SUM(qdfPayments.IncomePaymentSumCalc * (Month(PaymentDate) <= 3)) AS Март, 
-SUM(qdfPayments.IncomePaymentSumCalc * (Month(PaymentDate) <= 4)) AS Апрель, 
-SUM(qdfPayments.IncomePaymentSumCalc * (Month(PaymentDate) <= 5)) AS Май, 
-SUM(qdfPayments.IncomePaymentSumCalc * (Month(PaymentDate) <= 6)) AS Июнь, 
-SUM(qdfPayments.IncomePaymentSumCalc * (Month(PaymentDate) <= 7)) AS Июль, 
-SUM(qdfPayments.IncomePaymentSumCalc * (Month(PaymentDate) <= 8)) AS Август, 
-SUM(qdfPayments.IncomePaymentSumCalc * (Month(PaymentDate) <= 9)) AS Сентябрь, 
-SUM(qdfPayments.IncomePaymentSumCalc * (Month(PaymentDate) <= 10)) AS Октябрь, 
-SUM(qdfPayments.IncomePaymentSumCalc * (Month(PaymentDate) <= 11)) AS Ноябрь, 
-SUM(qdfPayments.IncomePaymentSumCalc * (Month(PaymentDate) <= 12)) AS Декабрь

FROM qdfPayments
WHERE Year(PaymentDate)