Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: нужна помощь в написании запроса (алгоритма)
 
 автор: krusz   (26.05.2010 в 11:53)   личное сообщение
 
 

Добрый день.

Прошу помощи в написании алгоритма и запроса.
Бьюсь уже второй месяц и все в пустую…

Буду как в школе

Дано: 2 таблицы

1 таблица – Договор (поля: код, номер договора, дата договора, дата окончания действия договора и другие столбцы) сюда вносятся данные по договору
2 таблицы – доп.соглашения (поля: код, код договора, арендная ставка, дата вступления в силу арендной ставки) здесь вносятся данные по изменению арендной ставки в течении действия договора .

Задача: нужно сделать запрос (алгоритм) по вычислению полной оплаченной суммы в течении срока действия договора с учетом изменения арендной ставки в течения договора.
и вывести информацию по всем договорам..

доп.задача вывести только те договора по которым оплата будет равна или более
3 000 000рубл.

  Ответить  
 
 автор: час   (26.05.2010 в 12:16)   личное сообщение
 
 

А что нибудь типа - приходного ордера имеется?
Нуууууууу где нибудь как нибудь отмечается поступление оплаты?
за что, за какой период?
Как только такие данные будут заносится в таблицу - все вопросы у Вас разрешатся сами собой.ИМХО

  Ответить  
 
 автор: snipe   (26.05.2010 в 12:20)   личное сообщение
 
 

арендная ставка в чем измеряется?
руб/месяц руб/год руб/день

  Ответить  
 
 автор: Krusz   (26.05.2010 в 12:25)   личное сообщение
 
 

руб/месяц

  Ответить  
 
 автор: osmor   (26.05.2010 в 12:36)   личное сообщение
 
 

а такой странный вопрос, а в середине месяца поменять ставку могут? Как тогда считать? Что считать месяцем если договор заключен в 15-го числа. или оканчивается 9-го ?

  Ответить  
 
 автор: Explorer   (26.05.2010 в 13:04)   личное сообщение
 
 

некоторые договоры аренды бъются ровно по месяцу

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) делят на количество дней в году и на этом основании рассчитывают аренду за неполный месяц

при пересмотре ставки аренды в пределах срока действия договора используется аналогичный подход - такой же как для всего договора.

  Ответить  
 
 автор: Krusz   (26.05.2010 в 12:24)   личное сообщение
 
 

нет, такие данные не заносятся... и к тому же нужно посчитать не все осуществленные платежи но и учесть те, которые будут произведены до окончания срока действия договора

  Ответить  
 
 автор: час   (26.05.2010 в 12:48)   личное сообщение
 
 

Прогнозировать будет трудно, так как ставка может измениться, оплата может быть не произведена, договор может быть расторгнут и т.д.
Но всё равно заносите данные и они будут отображаться в любом необходимом для Вас виде.
=========================================================================
Если данные не заносить - подсчитать и отобразить вряд ли что-то путное удастся.

  Ответить  
 
 автор: час   (26.05.2010 в 12:58)   личное сообщение
 
 

Я бы забабахал так:

Таблица настроек программы (TUNUNG)
Настройка(Ставка по умолчанию (на текущий период))
Значение(100) р.

таблица проплат по договору(PAY_DOGOVORS)
ID_Договора
Дата_Оплаты
Сумма_Оплаты
Оплачено (логическое)

При заключении нового договора - в таблицу PAY_DOGOVORS заносятся данные о проплате с суммой по умолчанию (Сумма_Оплаты=100р.)
Как только оплата действительно поступит поставить галочку оплачено и внести реальную сумму, если она не соответствует той, что уже проставлена по умолчанию и так же проставить дату оплаты.
================================================================================
Запросы к данным из этой таблице отвтят на многие интересующие руководства вопросы

  Ответить  
 
 автор: Krusz   (26.05.2010 в 13:17)   личное сообщение
 
 

попробую ответить на все вопросы....
то что в будуещем поменяется ставка - в данной задаче не важно
то что договр может быть расторгнут - так же не важно..
то что договор заключен не с 1 числа, а с 15 так же не важно...

более важно отследить то, что по договору возможно будет всего оплаченно более 3000000руб.

соответственно может быть ситуация когда при заключении договора оплата по договору составит 2000000руб , после заключения доп.соглашения об изменении арендной ставки уже всего платежей составит 3100000 и вот в этот момент у меня должна выскочить либо табличка, что по данному договору возможно будет оплата более 3000000. если в дальнейшем будет снижение - это уже не важно... так же если договор пролонгируется на второй срок и уже во втором сроке возможно будет общая оплата по договору более 3000000руб опять должна выскочить эта табличка... либо ежедневно делать отчет и смотреть какие договора поподают под данное условие... договора заносят несколько человек, выгрузка нужна только мне...

  Ответить  
 
 автор: Lukas   (26.05.2010 в 13:24)   личное сообщение
 
 

Со служебной табличкой "календарь":

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;


Блин, забыл ставку поделить на количество дней в месяце.

  Ответить  
 
 автор: Explorer   (26.05.2010 в 14:05)   личное сообщение
 
 

это ты по какому-то своему рабочему примеру делаешь?
или специально под этот случай экземпл набросал?

  Ответить  
 
 автор: Lukas   (26.05.2010 в 14:08)   личное сообщение
 
 

Это я попробовал, насколько будет тормозить такой расчет.
С одним договором справился.

  Ответить  
 
 автор: час   (26.05.2010 в 14:10)   личное сообщение
 
 

Круто

  Ответить  
 
 автор: Krusz   (26.05.2010 в 14:29)   личное сообщение
 
 

а у меня таких договоров около 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

  Ответить  
 
 автор: Lukas   (26.05.2010 в 22:27)   личное сообщение
 
 

Подозреваю, что при подсчете по количеству месяцев будет большая погрешность.

  Ответить  
 
 автор: Krusz   (27.05.2010 в 09:23)   личное сообщение
 
 

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

кстати спасибо всем, сегодня ночью меня как Менделеева осенило и запрос написал... подозреваю, что можно было намного проще и грамотнее и красивее, но как говориться задача выполнена, правда пришлось составить для этого 8 запросов... скорость обработки практически мгновенная... не знаю правда как будет работать когда помещу все это на сервер...

  Ответить  
 
 автор: час   (27.05.2010 в 09:27)   личное сообщение
 
 

ОООООООООООООО!!!!
=======================================
Молоток.!!!
Менделеев - и рядом не спал...!!!.......

  Ответить  
 
 автор: Krusz   (27.05.2010 в 12:12)   личное сообщение
 
 

мда, столкнулся с другой проблемой

SELECT Договор.Проверен, Договор.[дата проверки]
FROM Договор INNER JOIN [Запрос1-1-1] ON Договор.Код = [Запрос1-1-1].Код;

вот в данном случае внести изменение в поле Договор.Проверен я не могу...
как сделдать так, что бы можно было вносить изменения.

Запрос-1-1-1 - это окончательный запрос, который выдает мне нужную информацию.

P.P.S прошу прощения за несоблюдение этики присвоения имен.

  Ответить  
 
 автор: час   (27.05.2010 в 12:14)   личное сообщение
 
 

начни новую тему, а то сюда народ не доберётся.......
======================================================
тута так фсё запутано...............

  Ответить  
 
 автор: Krusz   (27.05.2010 в 12:17)   личное сообщение
 
 

а я сдела вид форума, что бы все новые сообщения были сверху.
но последую совету :)

  Ответить  
 
 автор: Explorer   (26.05.2010 в 13:38)   личное сообщение
 
 


опять должна выскочить эта табличка



буэ-эээээ

постановочка...

  Ответить  
 
 автор: час   (26.05.2010 в 13:59)   личное сообщение
 
 

По поводу выскочки-таблички - это када на кнопку с надписью "ПРОАНАЛИЗИРОВАТЬ" повесите код исполнения запроса "АНАЛИЗ_МАХ_ПРОПЛАТ" тогда и появится на экране табличка - это будут результаты запроса в табличном виде.
================================================================================
Ваще то у меня на рынке такая программа стоит - они работают так как Вы описываете.
Но у мну там за каждый месяц в зависимости от договора(доп соглашения) - арендаторы платят сумму.
Оформляется всё приходником, в случае возврата им денег, оформляется расходник.
Но что ба шкуру неубитого медведя делить - это я как то в программе не предусмотрел......
Хотя по итогам предыдущего месяца - это пожалуйста..........
Но вот прогнозируемая прибыль - это я как то, да и они не просили... а можно было и забабахать - раз плюнуть........

  Ответить  
 
 автор: Krusz   (26.05.2010 в 14:27)   личное сообщение
 
 

это не прогноз прибыли или еще чего то..
просто информацию по таким договорам мы должны подавать в соответсвующую структуру

  Ответить  
 
 автор: snipe   (01.06.2010 в 07:53)   личное сообщение
24 Кб.
 
 

Вот =>

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList