|
|
|
| Добрый день.
Прошу помощи в написании алгоритма и запроса.
Бьюсь уже второй месяц и все в пустую…
Буду как в школе
Дано: 2 таблицы
1 таблица – Договор (поля: код, номер договора, дата договора, дата окончания действия договора и другие столбцы) сюда вносятся данные по договору
2 таблицы – доп.соглашения (поля: код, код договора, арендная ставка, дата вступления в силу арендной ставки) здесь вносятся данные по изменению арендной ставки в течении действия договора .
Задача: нужно сделать запрос (алгоритм) по вычислению полной оплаченной суммы в течении срока действия договора с учетом изменения арендной ставки в течения договора.
и вывести информацию по всем договорам..
доп.задача вывести только те договора по которым оплата будет равна или более
3 000 000рубл. | |
|
| |
|
|
|
| А что нибудь типа - приходного ордера имеется?
Нуууууууу где нибудь как нибудь отмечается поступление оплаты?
за что, за какой период?
Как только такие данные будут заносится в таблицу - все вопросы у Вас разрешатся сами собой.ИМХО | |
|
| |
|
|
|
| арендная ставка в чем измеряется?
руб/месяц руб/год руб/день | |
|
| |
|
|
|
|
| а такой странный вопрос, а в середине месяца поменять ставку могут? Как тогда считать? Что считать месяцем если договор заключен в 15-го числа. или оканчивается 9-го ? | |
|
| |
|
|
|
| некоторые договоры аренды бъются ровно по месяцу
2010 с 15 января по 14 февраля (включительно) = 20.000-00 USD = 31 день (645-15 USD/день)
2010 с 15 февраля по 14 марта (включительно) = 20.000-00 USD = 28 дней (714-29 USD/день)
при расторжении либо предусматривается невозвратная сумма - аренда за полный месяц с первого дня аренды в очередном месяце (20.000-00 USD/день) но такие договоры очень не любит налоговая
или
2010 с 15 марта по 2 апреля включительно = 20.000-00 USD/30 дней = 666-67 USD/день * 19 дней = 12.666-73 за период аренды.
соответственно при расторжении в феврале можно получить неучтенный профит :)
иногда еще годовую ставку аренды (20.000-00 *12) делят на количество дней в году и на этом основании рассчитывают аренду за неполный месяц
при пересмотре ставки аренды в пределах срока действия договора используется аналогичный подход - такой же как для всего договора. | |
|
| |
|
|
|
| нет, такие данные не заносятся... и к тому же нужно посчитать не все осуществленные платежи но и учесть те, которые будут произведены до окончания срока действия договора | |
|
| |
|
|
|
| Прогнозировать будет трудно, так как ставка может измениться, оплата может быть не произведена, договор может быть расторгнут и т.д.
Но всё равно заносите данные и они будут отображаться в любом необходимом для Вас виде.
=========================================================================
Если данные не заносить - подсчитать и отобразить вряд ли что-то путное удастся. | |
|
| |
|
|
|
| Я бы забабахал так:
Таблица настроек программы (TUNUNG)
Настройка(Ставка по умолчанию (на текущий период))
Значение(100) р.
таблица проплат по договору(PAY_DOGOVORS)
ID_Договора
Дата_Оплаты
Сумма_Оплаты
Оплачено (логическое)
При заключении нового договора - в таблицу PAY_DOGOVORS заносятся данные о проплате с суммой по умолчанию (Сумма_Оплаты=100р.)
Как только оплата действительно поступит поставить галочку оплачено и внести реальную сумму, если она не соответствует той, что уже проставлена по умолчанию и так же проставить дату оплаты.
================================================================================
Запросы к данным из этой таблице отвтят на многие интересующие руководства вопросы | |
|
| |
|
|
|
| попробую ответить на все вопросы....
то что в будуещем поменяется ставка - в данной задаче не важно
то что договр может быть расторгнут - так же не важно..
то что договор заключен не с 1 числа, а с 15 так же не важно...
более важно отследить то, что по договору возможно будет всего оплаченно более 3000000руб.
соответственно может быть ситуация когда при заключении договора оплата по договору составит 2000000руб , после заключения доп.соглашения об изменении арендной ставки уже всего платежей составит 3100000 и вот в этот момент у меня должна выскочить либо табличка, что по данному договору возможно будет оплата более 3000000. если в дальнейшем будет снижение - это уже не важно... так же если договор пролонгируется на второй срок и уже во втором сроке возможно будет общая оплата по договору более 3000000руб опять должна выскочить эта табличка... либо ежедневно делать отчет и смотреть какие договора поподают под данное условие... договора заносят несколько человек, выгрузка нужна только мне... | |
|
| |
|
|
|
| Со служебной табличкой "календарь":
SELECT
t2.OrderID,
Sum(t2.RateOnDay) AS Total
FROM (
SELECT
tblOrders.OrderID,
(SELECT TOP 1 t1.Rate FROM tblOrderDetails t1 WHERE t1.OrderID=tblOrders.OrderID AND t1.DateFrom<=tblCalendar.OnDate ORDER BY t1.DateFrom Desc) AS RateOnDay
FROM
tblCalendar
INNER JOIN tblOrders ON (tblCalendar.OnDate Between tblOrders.DateFrom AND tblOrders.DateTo)
) AS t2
GROUP BY
t2.OrderID;
|
Блин, забыл ставку поделить на количество дней в месяце. | |
|
| |
|
|
|
| это ты по какому-то своему рабочему примеру делаешь?
или специально под этот случай экземпл набросал? | |
|
| |
|
|
|
| Это я попробовал, насколько будет тормозить такой расчет.
С одним договором справился. | |
|
| |
|
|
|
| Круто | |
|
| |
|
|
|
| а у меня таких договоров около 1000
приведу ниже табличку..
можно как то сделать запрос, что бы он считал количество месяцев между датой вступления первой строки и датой вступления второй строки и данное количество месяцев умножить на сумму аренды первой строки? и так по каждому договору?
или это не реально ?
Код Сумма аренды Дата вступления срок договора
2 148 590,00р. 01-сен-06 30-апр-10
2 142 470,00р. 01-авг-07 30-апр-10
2 170 964,00р. 01-июл-08 30-апр-10
4 90 000,00р. 15-дек-06 31-авг-10
4 105 000,00р. 01-ноя-08 31-авг-10
4 69 290,00р. 01-май-09 31-авг-10
4 58 630,00р. 01-окт-09 31-авг-10
5 99 003,00р. 01-фев-07 30-сен-10
5 114 003,00р. 01-июн-07 30-сен-10
5 120 453,00р. 01-янв-08 30-сен-10
5 132 524,00р. 01-янв-09 30-сен-10 | |
|
| |
|
|
|
| Подозреваю, что при подсчете по количеству месяцев будет большая погрешность. | |
|
| |
|
|
|
| в данном случае это не страшно, здесь не оценивается предполагаеммая прибыль и не быдут выделяться деньги или расчитываться. если даже будет погрешность +-100000рублей это не страшно. мы должны дать информацию в надзерающий орган по договорам по которым будет платеж равен или более 3000000руб.
кстати спасибо всем, сегодня ночью меня как Менделеева осенило и запрос написал... подозреваю, что можно было намного проще и грамотнее и красивее, но как говориться задача выполнена, правда пришлось составить для этого 8 запросов... скорость обработки практически мгновенная... не знаю правда как будет работать когда помещу все это на сервер... | |
|
| |
|
|
|
| ОООООООООООООО!!!!
=======================================
Молоток.!!!
Менделеев - и рядом не спал...!!!....... | |
|
| |
|
|
|
| мда, столкнулся с другой проблемой
SELECT Договор.Проверен, Договор.[дата проверки]
FROM Договор INNER JOIN [Запрос1-1-1] ON Договор.Код = [Запрос1-1-1].Код;
вот в данном случае внести изменение в поле Договор.Проверен я не могу...
как сделдать так, что бы можно было вносить изменения.
Запрос-1-1-1 - это окончательный запрос, который выдает мне нужную информацию.
P.P.S прошу прощения за несоблюдение этики присвоения имен. | |
|
| |
|
|
|
| начни новую тему, а то сюда народ не доберётся.......
======================================================
тута так фсё запутано............... | |
|
| |
|
|
|
| а я сдела вид форума, что бы все новые сообщения были сверху.
но последую совету :) | |
|
| |
|
|
|
|
опять должна выскочить эта табличка
|
буэ-эээээ
постановочка... | |
|
| |
|
|
|
| По поводу выскочки-таблички - это када на кнопку с надписью "ПРОАНАЛИЗИРОВАТЬ" повесите код исполнения запроса "АНАЛИЗ_МАХ_ПРОПЛАТ" тогда и появится на экране табличка - это будут результаты запроса в табличном виде.
================================================================================
Ваще то у меня на рынке такая программа стоит - они работают так как Вы описываете.
Но у мну там за каждый месяц в зависимости от договора(доп соглашения) - арендаторы платят сумму.
Оформляется всё приходником, в случае возврата им денег, оформляется расходник.
Но что ба шкуру неубитого медведя делить - это я как то в программе не предусмотрел......
Хотя по итогам предыдущего месяца - это пожалуйста..........
Но вот прогнозируемая прибыль - это я как то, да и они не просили... а можно было и забабахать - раз плюнуть........ | |
|
| |
|
|
|
| это не прогноз прибыли или еще чего то..
просто информацию по таким договорам мы должны подавать в соответсвующую структуру | |
|
| |
|
24 Кб. |
|
| Вот => | |
|
| |