Форум программистов, компьютерный форум, киберфорум
Наши страницы
Firebird/InterBase
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
CheshireesCat
86 / 82 / 43
Регистрация: 02.05.2015
Сообщений: 764
1

Перерасчет значения поля DISCOUNT исходя из текущего значения поля TOTAL

22.07.2016, 07:04. Просмотров 875. Ответов 6
Метки нет (Все метки)

Не знаю на сколько точно выйдет сформулировать мыль но вот:
есть клиентская таблица, среди прочьего в ней есть поля TOTAL и DISCOUNT
можно как то сделать так чтобы при изменениях в записи оно пересчитывало значение поля дисконт исходя из значения поля тотал по следующей формуле:

if total<=500 then discount=0
if total>500 and total<=1500 then discount=1
и так далее...
>1500 <=3000 =2
>3000 <=5000 =3
>5000 <=8000 =4
>8000 =5
не знаю что для этого надо.. тригеры или генераторы, или ещё что..

Добавлено через 3 минуты
я могу это обсчитывать в приложении(сервере) что пишу.. но если есть возможность, хотелось бы использовать стандартные способы...
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.07.2016, 07:04
Ответы с готовыми решениями:

Автозаполнение поля, исходя из значения другого поля
доброго времени суток. как организовать запрос, если: есть 2 таблицы. Таблица 0: Идентификатор,...

Выбор значения из поля со списком, исходя из предыдущего поля со списком
Дана БД. Форма на добавление данных. Необходимо сделать следующее: 1) В поле &quot;Свободно...

Подстановка поля исходя из значения предыдущего
Добрый вечер! Создал таблицу и в ней имеется поля &quot;наименование&quot; и &quot;сокращение&quot; (сокращение этого...

Подстановка значения поля при выборе значения другого поля
Добрый день. Есть таблица Блюда и таблица Меню. В Меню есть поле наименование, в свойствах которого...

Зависимые поля (список значений одного поля зависит от значения другого поля)
Здравствуйте, Уважаемые участники форума, изучив множество подобных вопросов на разных форумах,...

6
Bit_Man
456 / 377 / 103
Регистрация: 24.04.2012
Сообщений: 1,469
Записей в блоге: 3
22.07.2016, 08:37 2
Наверное лучше завести отдельную табличку на DISCOUNT по условию на TOTAL. Делать запрос к ней и брать значение.
Типа
idTOTAL_beginTOTAL_endDISCOUNT
1150030002
2300050003
3500080004
48000null5
И дать пользователю самому заполнять эту табличку

Добавлено через 1 минуту
А еще если период действия навернуть, будет немного лучше.
0
CheshireesCat
86 / 82 / 43
Регистрация: 02.05.2015
Сообщений: 764
22.07.2016, 09:04  [ТС] 3
Bit_Man, суть в том что тотал идёит из истории, это сумма которую ты протратил в магазине, исходя из которой насчитывается скидка

Добавлено через 3 минуты
я пришёл капил мороженое за 20ку и у меня как у клиента тотал уже 20
когда я сьем ещё 24 мороженки в этом магазине у меня будет уже 500денежных едениц, и следующая(26) пачка мороженого мне обойдёться не в 20 а в 19.80
0
Lord_Voodoo
Супер-модератор
8715 / 2370 / 137
Регистрация: 07.03.2007
Сообщений: 11,317
Завершенные тесты: 1
22.07.2016, 09:15 4
CheshireesCat, зачем хранить в таблице инфу, которую можно вычислить на основании других данных, причем довольно легко, если верить вашим описаниям? IMHO, это в корне неверный подход в проектировании БД...
0
CheshireesCat
86 / 82 / 43
Регистрация: 02.05.2015
Сообщений: 764
22.07.2016, 18:04  [ТС] 5
Lord_Voodoo, вот я и говорю
Цитата Сообщение от CheshireesCat Посмотреть сообщение
я могу это обсчитывать в приложении(сервере) что пишу
Добавлено через 12 секунд
ТОгда так и сделаю пожалуй
0
Bit_Man
456 / 377 / 103
Регистрация: 24.04.2012
Сообщений: 1,469
Записей в блоге: 3
25.07.2016, 03:55 6
Цитата Сообщение от CheshireesCat Посмотреть сообщение
суть в том что тотал идёит из истории, это сумма которую ты протратил в магазине, исходя из которой насчитывается скидка
Это все понятно. Я тебе предложил таблицу - условие, т.е. то что ты делаешь в приложении:
Цитата Сообщение от CheshireesCat Посмотреть сообщение
if total<=500 then discount=0
if total>500 and total<=1500 then discount=1
и так далее...
>1500 <=3000 =2
>3000 <=5000 =3
>5000 <=8000 =4
>8000 =5
Что бы изменить условие или значение скидки тебе нужно будет править приложение, когда лучше эту инфу держать и править в базе.
0
CheshireesCat
86 / 82 / 43
Регистрация: 02.05.2015
Сообщений: 764
10.08.2016, 11:39  [ТС] 7
Цитата Сообщение от Bit_Man Посмотреть сообщение
нужно будет править приложение
Я смог это вынести в ini но это больше не актуально тк. было решено использовать бонусно-накопительную систему а не скидочную
0
10.08.2016, 11:39
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.08.2016, 11:39

Как связать между собой два поля (список значений одного поля зависит от значения другого поля)
Есть таблица: предмет, КодТипаМатериала (список), КодМатериала (список) для примера: ...

Динамический запрос (подстановка текущего выбранного значения поля)
Нужно при выборе radio кнопки и записи в таблице формировать динамический запрос в который будет...

Как реализовать автозаполнение поля в DbGrid в зависимости от значения другого поля
Добрый день. Не могу разобраться в автозаполнением поля в gdgride. Суть проблемы, имеется у меня...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.