Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.72/25: Рейтинг темы: голосов - 25, средняя оценка - 4.72
0 / 0 / 0
Регистрация: 29.01.2014
Сообщений: 11

Расчёт пени

09.02.2015, 08:06. Показов 5412. Ответов 24
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую Вас, форумчане!
Проблема следующая. Компания занимается реализацией авто в рассрочку. Есть три таблицы - График, Касса, Клиенты. У каждого клиента есть свой график, по кассе отражаются его платежи. Хочу создать отчёт для расчёта пени со столбцами - №, Дата, Начислено, Оплачено, Долг, Начало периода, Конец периода, Размер пени в день, Количество дней в периоде, Сумма пени.
Расчёт осуществляется по периодам. Периоды формируются исходя из двух событий - дата оплаты по графику, дата фактической оплаты. Проблема в столбце Конец периода, который равен значению Начало периода следующей записи.
Уникального поля нет, так как данные берутся с разных таблиц.
Прошу помощи в реализации отчёта - как получить данные поля Начало периода следующей записи?

Заранее благодарю за внимание!
Вложения
Тип файла: zip Пени.zip (30.7 Кб, 22 просмотров)
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.02.2015, 08:06
Ответы с готовыми решениями:

Расчёт пени
В общем помогите сообразить как сделать так: Шершу ваш форум и гугл.

Запрос на вычислении пени
Здравствуйте. Неполучается написать запрос на вычисление пени. Выдает по нулям. Запрос таков: Пеня: iif(>Date(); ...

Расчет пени на текущую сумму долга
Добрые люди, надеюсь на вашу помощь! Надо рассчитывать начисление пени на сумму текущего долга по количеству дней просрочки. - Есть...

24
Эксперт MS Access
 Аватар для ltv_1953
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
09.02.2015, 08:46
Пени начисляются на общий долг? Тогда возможно подойдет запрос К_Долги_ во вложении (в конструкторе не открывайте, можете испортить, только SQL).
Вложения
Тип файла: 7z Пени.7z (21.6 Кб, 47 просмотров)
1
0 / 0 / 0
Регистрация: 29.01.2014
Сообщений: 11
09.02.2015, 08:58  [ТС]
ltv_1953, как вы это сделали? ))) Не могу пока понять логику. Не могли бы вы объяснить в общих чертах хотя бы?
Огромное Вам спасибо за решение!
0
Эксперт MS Access
 Аватар для ltv_1953
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
09.02.2015, 09:14
Запрос К_Суммы_: в нем клиенты, даты изменения долга (было начисление или/и платеж), сумма - начисление с плюсом (увеличивает долг), платеж - с минусом (уменьшает долг).
Запрос К_Долги_: в нем К_Суммы_ джойнится сам с собой по клиенту (=) и по дате (<), делается группировка по клиенту и дате (По), вычисляется сумма долга на дату С и максимальная предыдущая дата (С).
Вроде все получается. И учтите, при расчете пени, что дату По нужно уменьшить на 1, так как с нее начинается следующий период.
1
0 / 0 / 0
Регистрация: 29.01.2014
Сообщений: 11
09.02.2015, 09:15  [ТС]
ltv_1953, а как можно перенести данные запроса К_Долги_ в отчёт "Пени" ?
0
Эксперт MS Access
 Аватар для ltv_1953
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
09.02.2015, 09:35
Лучший ответ Сообщение было отмечено Saga как решение

Решение

Джойнить с запросом Пени, ну и немного изменить поля в отчете (дату заменил на фамилию, убрал накопление, уменьшил дату По на 1, ставку пени забил 0,5%).
Вложения
Тип файла: zip Пени1.zip (30.3 Кб, 30 просмотров)
1
0 / 0 / 0
Регистрация: 29.01.2014
Сообщений: 11
09.02.2015, 12:22  [ТС]
Благодарю Вас от всей души! Буду разбираться!

Добавлено через 2 часа 45 минут
В отчёте "Пени", строка №2 и строка №3 по столбцу "Сумма пени" выдают одинаковую сумму из-за того, что дата одна и та же. А нельзя заджойнить запрос "Пени" с самим собой, добавив строку с текущей датой? Смысл в том, чтобы формировать отчёт по текущую дату.
0
0 / 0 / 0
Регистрация: 29.01.2014
Сообщений: 11
09.02.2015, 12:43  [ТС]
Нашел снимок отчёта, который должен получиться в итоге. Насчёт дней в периоде Вы правы, во вложении он некорректно считает. В остальном это то, что я должен получить в итоге.
Вложения
Тип файла: zip Расчет неустойки за просрочку платежей.zip (73.1 Кб, 46 просмотров)
0
Эксперт MS Access
 Аватар для ltv_1953
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
09.02.2015, 13:39
Можно изобразить что-то похожее.
Но такие отчеты - совмещение деталей расчета долга (может же быть и не один платеж в одну дату - наличными, с карты, ... ) с расчетом пеней по периоду лучше делать с предварительным формированием дополнительной таблицы для отчета.
Вложения
Тип файла: 7z Пени2.7z (38.4 Кб, 19 просмотров)
0
Эксперт MS Access
 Аватар для ltv_1953
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
09.02.2015, 13:56
Хотя, используя то, что в отличии от продаж, начисление может быть только одно за дату, можно сделать так.
Вложения
Тип файла: zip Пени3.zip (29.5 Кб, 9 просмотров)
0
0 / 0 / 0
Регистрация: 29.01.2014
Сообщений: 11
09.02.2015, 14:19  [ТС]
Я понял. Примерно как во вложении? Создаю временную таблицу, добавляю в неё данные из запроса "Пени" и объединяю с собой со сдвигом на +1 по id.
Теперь проблема только в формировании строки с последней оплаты или начисления по текущую дату. Как это можно реализовать не подскажете?
Вложения
Тип файла: zip Пени3.zip (80.8 Кб, 8 просмотров)
0
Эксперт MS Access
 Аватар для ltv_1953
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
09.02.2015, 14:32
Нет, сложнее. Я такие таблицы (для сверки долга с клиентами) формирую с обработкой в наборах данных, учитывая разные отсрочки и т.д..
А Вам того, что в последней версии (Пени3) должно хватить. Можно еще все вычисления перенести в запрос, добавить группу Фамилия и считать итоги пеней по Фамилиям.

Добавлено через 5 минут
Цитата Сообщение от Saga Посмотреть сообщение
Теперь проблема только в формировании строки с последней оплаты или начисления по текущую дату.
Можно заменить максимальную дату "По" на текущую, например.
0
0 / 0 / 0
Регистрация: 29.01.2014
Сообщений: 11
09.02.2015, 14:35  [ТС]
Да, вроде хватает, но у меня последняя запись выпадает. Должна быть строка №26 с "Дата начала"=20.05.2013 и "Дата конца" = текущая дата. Не знаю как прикрутить к запросу текущую дату.

Добавлено через 1 минуту
Цитата Сообщение от ltv_1953 Посмотреть сообщение
Можно заменить максимальную дату "По" на текущую, например.
Так я же теперь не использую запрос с "По"
0
0 / 0 / 0
Регистрация: 29.01.2014
Сообщений: 11
09.02.2015, 14:42  [ТС]
Вот что получилось. Всё считает, как на картинке. Но нет последней строки.
Вложения
Тип файла: zip Пени4.zip (86.5 Кб, 4 просмотров)
0
Эксперт MS Access
 Аватар для ltv_1953
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
09.02.2015, 14:55
Смотрите во вложении:
Вложения
Тип файла: zip Пени4.zip (31.2 Кб, 16 просмотров)
1
0 / 0 / 0
Регистрация: 29.01.2014
Сообщений: 11
10.02.2015, 06:39  [ТС]
Спасибо большое за участие! Несколько месяцев не мог реализовать данный блок.

Добавлено через 15 часов 41 минуту
Доброго Вам дня! Проверяю данные и нашёл одну нестыковку. В запросе "К_Долги_" теряется одна запись (запись с последней датой) на сумму 176 429,28. Не поможете вернуть?
0
Эксперт MS Access
 Аватар для ltv_1953
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
10.02.2015, 07:01
Угу. Ведь же исходно искали полные интервалы, а только потом прилепили текущую дату. Нужна еще запись с интервалом (макс. дата, текущая дата). Посмотрю днем.
0
Эксперт MS Access
 Аватар для ltv_1953
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
10.02.2015, 07:38
Удалось сделать быстро - последняя добавляется в UNION, а предпоследняя - как в 3 версии. Смотрите и обязательно проверьте.
Вложения
Тип файла: zip Пени5.zip (51.7 Кб, 40 просмотров)
1
0 / 0 / 0
Регистрация: 29.01.2014
Сообщений: 11
10.02.2015, 09:07  [ТС]
Благодарствую, а то я начал вставлять новую запись.

Добавлено через 1 час 6 минут
В "Запросе Для_Отчета_1" подправил "IIf([Начислено]>0,Null,[Ставка]*[Интервал]*[Долг]) AS Пени1" на "IIf([Долг]<0,Null,[Ставка]*[Интервал]*[Долг]) AS Пени1". Думаю так правильнее.

Но тогда в отчет "Пени" сбивается поле "Сумма пени" по строке №2 из-за того, что "Окончание периода" должно быть не "20.02.2012", а "20.01.2012". При сдвиге он берёт дату только больше даты начала периода.
Получается без уникального поля сдвиг делаем по дате и если дата окончания периода текущей записи равна дате начала периода следующей записи - считает неправильно.
0
Эксперт MS Access
 Аватар для ltv_1953
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
10.02.2015, 11:18
Спецобработка, когда в дате только оплата.
Вложения
Тип файла: 7z Пени6.7z (25.1 Кб, 59 просмотров)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.02.2015, 11:18
Помогаю со студенческими работами здесь

БД расчёт бетона
Уважаемые завсегдатые форума, профессионалы, спецы и просто любители мира Аксесс. Не хотелось создавать новую тему, но приходится, так как...

Расчёт стоимости со скидкой
Не получается рассчитать стоимость, всё напутал, наверное, в access новичок, помогите

Расчёт средневзвешенных записей
Здравствуйте уважаемые форумчане, помогите пожалуйста со следующим вопросом: Есть база(прикладываю пример, настоявшая база такая...

Расчёт платёжки за электроинергию
Уважаемы форумчане помогите с заданием: Спроектировать БД для задачи «Оплаты за электроэнергию», которая содержит следующую...

ibm db2 расчёт производных параметров
Всем привет. Появилась интересная задачка - можно ли както в idm db2 посчитать параметры, используя данные из этогоже запроса - к примеру...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru