Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Тарифная сетка. Как лучше реализовать? :о( / 5 сообщений из 5, страница 1 из 1
29.09.2003, 10:28
    #32277877
Витал
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тарифная сетка. Как лучше реализовать? :о(
Может у кого есть интересные варианты реализации или идеи... Не охота изобретать велосипед.
Задача. Есть базовое число (напр. 100), на снове которого необходимо вычислять тарифы по 9 разрядам и 7 сеткам. При этом для каждого разряда установлен % от базового числа и для каждой сетки - коэфициент. То бишь:
1-й разряд = 70% от базового числа
2-й = 80%
3-й = 100%
4-й = 115%
...
9-й = 155%

Для 1-й сетки установлен коэффициент = 1
2-й = 1,1
3-й = 1,25
...
7-й = 1,356

Т.о. получаем для 2-го разрряда по сетке 3 значение = 100*80%*1,25=100
для 1-го разряда по сетке 7 = 100*70%*1,356 = 94,92 и т.д.

Внимание вопрос!
- Как лучше хранить базовое число и %-коэффициенты, чтобы отображать итоги вычислений в виде таблиц со значениями: тарифы в день, тарифы в месяц, тарифы в год, - и использовать вычисляемые значения в запросах? В основной таблице хранятся данные о номере разряда и номере сетки.
...
Рейтинг: 0 / 0
29.09.2003, 13:28
    #32278217
assa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тарифная сетка. Как лучше реализовать? :о(
если вопрос в том, чтобы в запросах не писать кучу WHERE и не рисовать кучу объединений с одной и той же таблой, и если все выполняется на клиенте (mdb, mde), загрузи ты эту бодягу в массивы. Напиши ф-ию(и), которая только и делает, что по номерам возвращает элементы массива (а при их отсутствии - например если сдохли глобальные переменные из-за необработанных ошибок - производит перепрочтение таблиц в массивы).
...
Рейтинг: 0 / 0
29.09.2003, 14:09
    #32278305
Витал
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тарифная сетка. Как лучше реализовать? :о(
загрузи ты эту бодягу в массивы

Чтобы загрузить - надо где-то хранить. Вот в этом то и заключается основной вопрос. Как лучше хранить?
Например, в 3-х таблах
1. тбБЗ (БазовоеЗначение)
2. тбРазр (№Разряда, %)
3. тбСетка (№Сетки, Коэффициент)

Или 2-х
1. тбБЗ (БазовоеЗначение)
2. тбРазрСетка (№, %, Коэффициент)

Или еще как-то. А вот в зависимости от способа хранения и будет использоватьчся тот или иной метод отображения и вычисления. Оба варианта для вычисления предполагают использование вложенных запросов, которые не зависят от количества таблиц:
Код: plaintext
1.
2.
3.
Select т1.Имя, (Select БазовоеЗначение From тбБЗ)*
(Select % From тбРазр Where №Разряда = т1.Разряд)*
(Select Коэффициент From тбСетка Where №Сетки= т1.Сетка) AS Тариф
From ОсновнаяТаблица


И аналитикам хотелось бы просматривать результаты в виде таблицы, где по строкам разряды (и % им соответствующие), а по столбцам - номер сетки (да с соответствующими коэффициентами). А уж на пересечении - значение тарифа.... и т.д. и т.п.
...
Рейтинг: 0 / 0
29.09.2003, 14:21
    #32278332
Владимир Смирнов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тарифная сетка. Как лучше реализовать? :о(
Мне представляется более естественным и логичным первый вариант:
1. тбБЗ (БазовоеЗначение)
2. тбРазр (№Разряда, %)
3. тбСетка (№Сетки, Коэффициент)

Только зачем такой сложный запрос с подзапросами?
Достаточно обычных INNER JION для разряда и сетки, ну и подзапрос для [БазовоеЗначение]
...
Рейтинг: 0 / 0
29.09.2003, 16:05
    #32278487
Витал
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тарифная сетка. Как лучше реализовать? :о(
2 Владимир Смирнов.
Спасибо! Учту твое мнение. Но проблема отображения таблицы, пока остается и заставляет интенсивно чесать репу!!!
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Тарифная сетка. Как лучше реализовать? :о( / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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