powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Access. Надо сделать нарастающий итог по месяцам чтобы учитывался за предыдущие года
16 сообщений из 41, страница 2 из 2
Access. Надо сделать нарастающий итог по месяцам чтобы учитывался за предыдущие года
    #39169015
не знаю, по-моему, вполне сгодится прямо вот этот запрос
просто в подзапросе там написать новое выражение для поля суммирования (S), да и вся недолга
...
Рейтинг: 0 / 0
Access. Надо сделать нарастающий итог по месяцам чтобы учитывался за предыдущие года
    #39169026
что-то вроде
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
SELECT 'Нераспределенная прибыль' AS ПАССИВ,
-SUM(S*(NOT Y)) AS Итог_2014,
 SUM(S*(M=1)*Y)+Итог_2014 AS Январь,
 SUM(S*(M=2)*Y)+Январь AS Февраль, 
 SUM(S*(M=3)*Y)+Февраль AS Март, 
 SUM(S*(M=4)*Y)+Март AS Апрель, 
 SUM(S*(M=5)*Y)+Апрель AS Май, 
 SUM(S*(M=6)*Y)+Май AS Июнь, 
 SUM(S*(M=7)*Y)+Июнь AS Июль, 
 SUM(S*(M=8)*Y)+Июль AS Август, 
 SUM(S*(M=9)*Y)+Август AS Сентябрь, 
 SUM(S*(M=10)*Y)+Сентябрь AS Октябрь, 
 SUM(S*(M=11)*Y)+Октябрь AS Ноябрь, 
 SUM(S*(M=12)*Y)+Ноябрь AS Декабрь
FROM
(SELECT Center, 
 -IncomeAmount  * (ManagerPayCalc = 'Закрыт' AND TransactionType = 'Поступления')
 +PaymentAmount * (ManagerPayCalc = 'Закрыт' AND TransactionType = 'Затраты по заявке')
 +PaymentAmount * (TransactionType = 'Расходы прочие')
 +PaymentAmount * (ManagerPayCalc = 'Прибыль, дивиденды') AS S,
 Month(PaymentDate) AS M,
 Year(PaymentDate)=2015 AS Y
FROM
 qdfPayments
WHERE Year(PaymentDate)<=2015 And Center IS NOT NULL)
...
Рейтинг: 0 / 0
Access. Надо сделать нарастающий итог по месяцам чтобы учитывался за предыдущие года
    #39169089
Ainur.sm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
непоймучкачто-то вроде
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
SELECT 'Нераспределенная прибыль' AS ПАССИВ,
-SUM(S*(NOT Y)) AS Итог_2014,
 SUM(S*(M=1)*Y)+Итог_2014 AS Январь,
 SUM(S*(M=2)*Y)+Январь AS Февраль, 
 SUM(S*(M=3)*Y)+Февраль AS Март, 
 SUM(S*(M=4)*Y)+Март AS Апрель, 
 SUM(S*(M=5)*Y)+Апрель AS Май, 
 SUM(S*(M=6)*Y)+Май AS Июнь, 
 SUM(S*(M=7)*Y)+Июнь AS Июль, 
 SUM(S*(M=8)*Y)+Июль AS Август, 
 SUM(S*(M=9)*Y)+Август AS Сентябрь, 
 SUM(S*(M=10)*Y)+Сентябрь AS Октябрь, 
 SUM(S*(M=11)*Y)+Октябрь AS Ноябрь, 
 SUM(S*(M=12)*Y)+Ноябрь AS Декабрь
FROM
(SELECT Center, 
 -IncomeAmount  * (ManagerPayCalc = 'Закрыт' AND TransactionType = 'Поступления')
 +PaymentAmount * (ManagerPayCalc = 'Закрыт' AND TransactionType = 'Затраты по заявке')
 +PaymentAmount * (TransactionType = 'Расходы прочие')
 +PaymentAmount * (ManagerPayCalc = 'Прибыль, дивиденды') AS S,
 Month(PaymentDate) AS M,
 Year(PaymentDate)=2015 AS Y
FROM
 qdfPayments
WHERE Year(PaymentDate)<=2015 And Center IS NOT NULL)




Не правильно считает с июня месяца должно быть 100 000
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
SELECT 'Нераспределенная прибыль' AS ПАССИВ,
-SUM(S*(NOT Y)) AS Итог_2014,
 SUM(S*(M=1)*Y)+Итог_2014 AS Январь,
 SUM(S*(M=2)*Y)+Январь AS Февраль, 
 SUM(S*(M=3)*Y)+Февраль AS Март, 
 SUM(S*(M=4)*Y)+Март AS Апрель, 
 SUM(S*(M=5)*Y)+Апрель AS Май, 
 SUM(S*(M=6)*Y)+Май AS Июнь, 
 SUM(S*(M=7)*Y)+Июнь AS Июль, 
 SUM(S*(M=8)*Y)+Июль AS Август, 
 SUM(S*(M=9)*Y)+Август AS Сентябрь, 
 SUM(S*(M=10)*Y)+Сентябрь AS Октябрь, 
 SUM(S*(M=11)*Y)+Октябрь AS Ноябрь, 
 SUM(S*(M=12)*Y)+Ноябрь AS Декабрь
FROM
(SELECT Center, 
 -IncomeAmount  * (ManagerPayCalc = 'Закрыт' AND TransactionType = 'Поступления')
 +PaymentAmount * (ManagerPayCalc = 'Закрыт' AND TransactionType = 'Затраты по заявке')
 +PaymentAmount * (TransactionType = 'Расходы прочие')
 +PaymentAmount * (ManagerPayCalc = 'Прибыль, дивиденды') AS S,
 Month(PaymentDate) AS M,
 Year(PaymentDate)=2014 AS Y
FROM
 qdfPayments
WHERE Year(PaymentDate)<=2014 And Center IS NOT NULL)
...
Рейтинг: 0 / 0
Access. Надо сделать нарастающий итог по месяцам чтобы учитывался за предыдущие года
    #39169163
Ainur.smнепоймучкачто-то вроде
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
SELECT 'Нераспределенная прибыль' AS ПАССИВ,
-SUM(S*(NOT Y)) AS Итог_2014,
 SUM(S*(M=1)*Y)+Итог_2014 AS Январь,
 SUM(S*(M=2)*Y)+Январь AS Февраль, 
 SUM(S*(M=3)*Y)+Февраль AS Март, 
 SUM(S*(M=4)*Y)+Март AS Апрель, 
 SUM(S*(M=5)*Y)+Апрель AS Май, 
 SUM(S*(M=6)*Y)+Май AS Июнь, 
 SUM(S*(M=7)*Y)+Июнь AS Июль, 
 SUM(S*(M=8)*Y)+Июль AS Август, 
 SUM(S*(M=9)*Y)+Август AS Сентябрь, 
 SUM(S*(M=10)*Y)+Сентябрь AS Октябрь, 
 SUM(S*(M=11)*Y)+Октябрь AS Ноябрь, 
 SUM(S*(M=12)*Y)+Ноябрь AS Декабрь
FROM
(SELECT Center, 
 -IncomeAmount  * (ManagerPayCalc = 'Закрыт' AND TransactionType = 'Поступления')
 +PaymentAmount * (ManagerPayCalc = 'Закрыт' AND TransactionType = 'Затраты по заявке')
 +PaymentAmount * (TransactionType = 'Расходы прочие')
 +PaymentAmount * (ManagerPayCalc = 'Прибыль, дивиденды') AS S,
 Month(PaymentDate) AS M,
 Year(PaymentDate)=2015 AS Y
FROM
 qdfPayments
WHERE Year(PaymentDate)<=2015 And Center IS NOT NULL)



Не правильно считает с июня месяца должно быть 100 000
Ну так это зависит:

1) от того, какие у вас данные (а я их не знаю)
2) и от того, насколько правильно написана красная формула

Моей целью было предложить вам структурный SQL-вариант решения вашей задачи
и указать в нем место, КУДА надо написать вашу (правильную) формулу,

Насколько я увидел из вашего исходного запроса , эта формула одинакова для всех месяцев и пред.итога,
поэтому ее можно вынести прямо в подзапрос (чтоб не писать 13 раз) - что я сделал в запросе выше

При этом я взял формулу в том виде, как вы ее написали в вашем исходном посте,
и я НЕ знаю, насколько эта формула соответствует истинному смыслу ваших расчетов,
(ибо вы о нем не рассказывали, а просто написали некую формулу как данность.)

Так что ошибку вам придется искать самостоятельно.

Смотрите по аналогии с тем, как ранее (на первой странице) делали,
разбивая формулы на части и выводя их исходные составляюще значения в отдельные столбцы -
тогда можно видеть, как именно происходит счет и скорее понять что идет не так и как это подправить.

Успехов.
...
Рейтинг: 0 / 0
Access. Надо сделать нарастающий итог по месяцам чтобы учитывался за предыдущие года
    #39169174
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ainur.sm,

Так что ошибку вам придется искать самостоятельно.
так как отладочной базы, на которой вы проверяете методику расчета вы так и не выложили ни в одной из ваших 5-6-7.....тем

поэтому и я и непоймучка и вы работаем в разных базах
...
Рейтинг: 0 / 0
Access. Надо сделать нарастающий итог по месяцам чтобы учитывался за предыдущие года
    #39169279
Ainur.sm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
непоймучка, А что если. Создать 2 таблицы. В одном предыдущего итог + январь след года. А во втором месяца год=год
и в 3 таблице взять с перового таблица предыдущего итог + январь след года прибавить ко Февралю потом Февраль на Март.. Только как сделать 3 таблицу?
...
Рейтинг: 0 / 0
Access. Надо сделать нарастающий итог по месяцам чтобы учитывался за предыдущие года
    #39169302
Ainur.sm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
непоймучка,за январь месяц считает правильно. А в других не считает
...
Рейтинг: 0 / 0
Access. Надо сделать нарастающий итог по месяцам чтобы учитывался за предыдущие года
    #39169686
Ainur.sm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
непоймучка,
А как сделать чтобы выводил и нулевые значение всех полей?
...
Рейтинг: 0 / 0
Access. Надо сделать нарастающий итог по месяцам чтобы учитывался за предыдущие года
    #39169991
Ainur.sm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
непоймучкаAinur.smпропущено...


Не правильно считает с июня месяца должно быть 100 000
Ну так это зависит:

1) от того, какие у вас данные (а я их не знаю)
2) и от того, насколько правильно написана красная формула

Моей целью было предложить вам структурный SQL-вариант решения вашей задачи
и указать в нем место, КУДА надо написать вашу (правильную) формулу,

Насколько я увидел из вашего исходного запроса , эта формула одинакова для всех месяцев и пред.итога,
поэтому ее можно вынести прямо в подзапрос (чтоб не писать 13 раз) - что я сделал в запросе выше

При этом я взял формулу в том виде, как вы ее написали в вашем исходном посте,
и я НЕ знаю, насколько эта формула соответствует истинному смыслу ваших расчетов,
(ибо вы о нем не рассказывали, а просто написали некую формулу как данность.)

Так что ошибку вам придется искать самостоятельно.

Смотрите по аналогии с тем, как ранее (на первой странице) делали,
разбивая формулы на части и выводя их исходные составляюще значения в отдельные столбцы -
тогда можно видеть, как именно происходит счет и скорее понять что идет не так и как это подправить.

Успехов.

помоги плз....
...
Рейтинг: 0 / 0
Access. Надо сделать нарастающий итог по месяцам чтобы учитывался за предыдущие года
    #39170047
Ainur.sm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
непоймучкаAinur.smАнатолий ( Киев ),
мне нужно чтоб Итог до 2015 года +январь за 2015 года.

так можно
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
SELECT Center, 
-SUM(S*(NOT Y)) AS Итог_2014,
 SUM(S*(M=1)*Y)+Итог_2014 AS Январь,
 SUM(S*(M=2)*Y)+Январь AS Февраль, 
 SUM(S*(M=3)*Y)+Февраль AS Март, 
 SUM(S*(M=4)*Y)+Март AS Апрель, 
 SUM(S*(M=5)*Y)+Апрель AS Май, 
 SUM(S*(M=6)*Y)+Май AS Июнь, 
 SUM(S*(M=7)*Y)+Июнь AS Июль, 
 SUM(S*(M=8)*Y)+Июль AS Август, 
 SUM(S*(M=9)*Y)+Август AS Сентябрь, 
 SUM(S*(M=10)*Y)+Сентябрь AS Октябрь, 
 SUM(S*(M=11)*Y)+Октябрь AS Ноябрь, 
 SUM(S*(M=12)*Y)+Ноябрь AS Декабрь
 
FROM
(SELECT Center, IncomePaymentSumCalc AS S, Month(PaymentDate) AS M, Year(PaymentDate)=2015 AS Y
 FROM qdfPayments WHERE Year(PaymentDate)<=2015 And Center IS NOT NULL)
 
GROUP BY Center


Как вывести Center при нулевых значениях всех полей если даже в каждой месяце по нулям :??
...
Рейтинг: 0 / 0
Access. Надо сделать нарастающий итог по месяцам чтобы учитывался за предыдущие года
    #39171119
Ainur.sm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
непоймучкаAinur.smАнатолий ( Киев ),
мне нужно чтоб Итог до 2015 года +январь за 2015 года.

так можно
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
SELECT Center, 
-SUM(S*(NOT Y)) AS Итог_2014,
 SUM(S*(M=1)*Y)+Итог_2014 AS Январь,
 SUM(S*(M=2)*Y)+Январь AS Февраль, 
 SUM(S*(M=3)*Y)+Февраль AS Март, 
 SUM(S*(M=4)*Y)+Март AS Апрель, 
 SUM(S*(M=5)*Y)+Апрель AS Май, 
 SUM(S*(M=6)*Y)+Май AS Июнь, 
 SUM(S*(M=7)*Y)+Июнь AS Июль, 
 SUM(S*(M=8)*Y)+Июль AS Август, 
 SUM(S*(M=9)*Y)+Август AS Сентябрь, 
 SUM(S*(M=10)*Y)+Сентябрь AS Октябрь, 
 SUM(S*(M=11)*Y)+Октябрь AS Ноябрь, 
 SUM(S*(M=12)*Y)+Ноябрь AS Декабрь
 
FROM
(SELECT Center, IncomePaymentSumCalc AS S, Month(PaymentDate) AS M, Year(PaymentDate)=2015 AS Y
 FROM qdfPayments WHERE Year(PaymentDate)<=2015 And Center IS NOT NULL)
 
GROUP BY Center



Из таб. qdfPayment делаем группировку по Centr с нарастающим итогом с учетом предыдущего года. Надо сделать Join со 2 табл. tblCenter где имеет столбец Center и нужно вывести те Center которые не используется в первой таблице.
...
Рейтинг: 0 / 0
Access. Надо сделать нарастающий итог по месяцам чтобы учитывался за предыдущие года
    #39171261
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ainur.sm,

в несколько расширенном варианте 280 кб --не влезает
...
Рейтинг: 0 / 0
Access. Надо сделать нарастающий итог по месяцам чтобы учитывался за предыдущие года
    #39171265
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ainur.sm,
...
Рейтинг: 0 / 0
Access. Надо сделать нарастающий итог по месяцам чтобы учитывался за предыдущие года
    #39171267
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПЕНСИОНЕРКА,
...
Рейтинг: 0 / 0
Access. Надо сделать нарастающий итог по месяцам чтобы учитывался за предыдущие года
    #39171268
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПЕНСИОНЕРКА,
...
Рейтинг: 0 / 0
Access. Надо сделать нарастающий итог по месяцам чтобы учитывался за предыдущие года
    #39171269
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПЕНСИОНЕРКА,
...
Рейтинг: 0 / 0
16 сообщений из 41, страница 2 из 2
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Access. Надо сделать нарастающий итог по месяцам чтобы учитывался за предыдущие года
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]