powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как сделать красиво? switch
22 сообщений из 22, страница 1 из 1
Как сделать красиво? switch
    #39175978
mrmaxim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет!
необходимо посчитать стоимость посылок через DHL.

Формат их таблицы следующий:

zone0,30кг0,50кг1,00кг 1,50кг2,00кг2,50кг3,00кг3,50кг4,00кг4,50кг5,00кгA 284,26 284,26 426,39 491,00 555,60 594,37 633,13 671,89 710,66 749,42 788,18 B 284,26 335,95 426,39 491,00 555,60 607,29 658,97 710,66 762,34 814,02 865,71 C 297,18 361,79 452,24 516,84 581,45 633,13 684,81 736,50 788,18 839,87 891,55
в заголовках столбцов вес, первый столбец - зона (растояние A,B,C,D,..... )
В значениях указана стоимость доставки от 0,5 кг до 20 кг с шагом 0,5 кг ,
свыше 20кг до 50кг указана стоимость за 20 кг + фиксированное занчение за каждые 0,5 кг свыше 20.
аналогично от 50 до 70 и от 70 до 250.

Как это красиво сделать? switch отрабатывает только до 6.5 кг.

Возможно посчитать 5 тыс отправлений не прибегая к VBA?
Спасибо
...
Рейтинг: 0 / 0
Как сделать красиво? switch
    #39175995
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нормализуйте таблицу. Можно даже статическим запросом - она всё равно маленькая.
...
Рейтинг: 0 / 0
Как сделать красиво? switch
    #39175997
Predeclared
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Распивотить" таблицу имеется возможность?
...
Рейтинг: 0 / 0
Как сделать красиво? switch
    #39176027
mrmaxim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,
Как нормализовать. Там все значения меняются не по линейном закону.
Добираться до компании приложу таблицу. Спасибо.
...
Рейтинг: 0 / 0
Как сделать красиво? switch
    #39176028
mrmaxim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Predeclared,
Та же проблема. Значения меняются нелинейно .

Чем распайвотиь? Power query?
Спасиб
...
Рейтинг: 0 / 0
Как сделать красиво? switch
    #39176051
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mrmaxim,

если
а=100км
в=500
с=1000

а у вас посылка 2,8кг на 300км --расчет через интерполяцию?
...
Рейтинг: 0 / 0
Как сделать красиво? switch
    #39176055
Predeclared
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mrmaxim... Та же проблема. Значения меняются нелинейно ...
Да без разницы, что нелинейно.
Описание алгоритма расчета имеется, "базовые" цифры тоже.

Если хотим считать 5 тысяч отправлений не прибегая к VBA,
то нужна "правильная" табличка.

Вот для наполнения ее данными на основе имеющейся таблички и алгоритма расчета,
я бы пользовал VBA.
...
Рейтинг: 0 / 0
Как сделать красиво? switch
    #39176070
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mrmaximКак нормализовать.
Да элементарно. В таблицу вида

Zone (зона)
WeightFrom (диапазон веса - от)
WeightTo (диапазон веса - до)
BasePrice (стоимость веса для WeightFrom)
DeltaPrice (доп. стоимость за превышение на полкило)

Для начальных записей DeltaPrice =0, для больших весов больше нуля. По такой таблице легко считается стоимость на основании заданных зоны и веса.
...
Рейтинг: 0 / 0
Как сделать красиво? switch
    #39176086
Predeclared
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina... BasePrice (стоимость веса для WeightFrom)
DeltaPrice (доп. стоимость за превышение на полкило) ...
А почему не сразу Total (BasePrice+DeltaPrice)?
...
Рейтинг: 0 / 0
Как сделать красиво? switch
    #39176090
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PredeclaredА почему не сразу Total (BasePrice+DeltaPrice)?
А что записывать в это поле для диапазонов
mrmaximсвыше 20кг до 50кг указана стоимость за 20 кг + фиксированное занчение за каждые 0,5 кг свыше 20.
аналогично от 50 до 70 и от 70 до 250.
Или имеется в виду рассчитать для каждого веса с шагом в полкило? Ну и так можно...
...
Рейтинг: 0 / 0
Как сделать красиво? switch
    #39176107
Predeclared
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina... Или имеется в виду рассчитать для каждого веса с шагом в полкило?...
Ну да.
Что бы в окончательном запросе сразу иметь значение, без дополнительных расчетов.
...
Рейтинг: 0 / 0
Как сделать красиво? switch
    #39176121
mrmaxim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ПЕНСИОНЕРКА,
A, B, C, D, ....... - зоны (растояния), каждый город РФ относится к той или иной зоне. В данной таблице показаны тарифы из Москвы до каждой зоны. например зона H - Дальний Восток (Хабаровск, Владивосток), зона F - Новосибирск , Омск и проч..
...
Рейтинг: 0 / 0
Как сделать красиво? switch
    #39176127
mrmaxim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ПЕНСИОНЕРКАmrmaxim,

если
а=100км
в=500
с=1000

а у вас посылка 2,8кг на 300км --расчет через интерполяцию?

Не совсем так , есть таблица соотвествий городов РФ зонам ABCD...

Например 2,8 кг в Екатеринбург будет стоить: Екатеринбург - зона E , вес 2,8 <= тарифа 3кг для зоны F.
...
Рейтинг: 0 / 0
Как сделать красиво? switch
    #39176130
mrmaxim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Predeclared,
Как на VBA сделать я знаю. А как на чистом SQL ?
спасиб
...
Рейтинг: 0 / 0
Как сделать красиво? switch
    #39176141
mrmaxim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,
спасибо, я знал что есть красивое решение!!!
...
Рейтинг: 0 / 0
Как сделать красиво? switch
    #39176146
Predeclared
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На чистом SQL можно попытаться "собрать" запрос, возвращающий нам нормализованный набор цен,
но в нем не будет возможности пользовать индексы.
Насколько быстро этот запрос будет "объединяться" по диапазону с таблицей в 5 тысяч записей отправлений,
я даже гадать не берусь.
Может мембер Непоймучка возмется?
Он любит такие задачки.
...
Рейтинг: 0 / 0
Как сделать красиво? switch
    #39176153
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PredeclaredНу да.
Что бы в окончательном запросе сразу иметь значение, без дополнительных расчетов.
Тут, я думаю, выбор будет зависеть от потока расчётов. Если это пакетная обработка - наверное, такое решение более правильное. Если интерактивная - тогда скорее пофиг что выбрать, и так и эдак будет работать.
...
Рейтинг: 0 / 0
Как сделать красиво? switch
    #39176209
Фотография Лапух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А у меня чёй та возникло осчущение, что ТС подразумевал всё совершенно другое, а вы профи - начали углубляться в уж очень теоретические вопросы и возможности их решения.
Возможно и не прав, т. к. новичёк в данном вопросе и не особо понимаю специфический сленг, да в добавок ещё и старенький дедушка, но там скорее всего предполагалось как создать - Отчет для визуального анализа или распечатки, типа что бы было глазу приятно.
Возможно по какому то товару, по периоду или сумме.
...
Рейтинг: 0 / 0
Как сделать красиво? switch
    #39176300
mrmaxim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Лапух,

Нет отчеты не нужны.
Посчитаю стоимость каждого отправления.
Заброшу в таблицы Excel . Там в pivot визаулизирую

Не соображу как проще нормализованную таблицу сделать.
На ум только копипаст в Excel приходит.
...
Рейтинг: 0 / 0
Как сделать красиво? switch
    #39176301
mrmaxim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Оригинальная таблица с тарифами
10 зон на 50 весовых брейков (пределов)
...
Рейтинг: 0 / 0
Как сделать красиво? switch
    #39176310
Фотография Лапух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mrmaximЛапух,Нет отчеты не нужны. ...
Да кой же вы фанат аксика, если вы такое непотребные высказываете???
В аксике всЁ НУЖНОЕ практически есть.
В данном случае ну кажись ТОЧНО.
...
Рейтинг: 0 / 0
Как сделать красиво? switch
    #39181287
mrmaxim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ЛапухmrmaximЛапух,Нет отчеты не нужны. ...
Да кой же вы фанат аксика, если вы такое непотребные высказываете???
В аксике всЁ НУЖНОЕ практически есть.
В данном случае ну кажись ТОЧНО.

Лопух, я не являюсь фанатом "асика", в нем использую исключительно SQL. В крайнем случае VBA.
Задачу решил следующим образом:
1. Импортировал данные в нужном формате и привел таблицу к нормализованному виду с помощью Power Query для Excel
2. Импортировал тарифы в Access. Расчитал стоимости доставок (заняло менее 10 сек).
3. С помощью Power Query (обновляемый запрос) опять забросил данные в Excel.
4. C помощью Power Pivot визуализировал данные с необходимыми фильтрами и срезами.


P.S. начиная с 2010 в excel появилась возможность делать связи в таблицах, а с помощью Power Query организовать даже аналог
join Inner (default), Left Outer, Right Outer, Full Outer.

всем заинтересовавшимся рекомендую статью Power Query: стероиды для MS Excel
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как сделать красиво? switch
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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