@Hellows

Как высчитать скидку?

Всем привет. Есть 3 таблицы - Скидки(Discount), Клиенты(Clients) и Заказы(Orders)

Discount

id_discount count_orders percent_discount
         1           5             1,5
         2           10            2,5

Clients
id_client  Name Surname
         1     Ivan  Petrov
         2     Vasya Vasev


Orders
id order_sum

Вопрос, как посчитать общую сумму, учитывая количество заказов, который сделал клиент? Если общее кол-во заказов 5 и выше, то идет скидка в 1.5%, если 10 и выше, то 2.5%. В противном случае скидки нет.
Заранее спасибо
  • Вопрос задан
  • 1097 просмотров
Пригласить эксперта
Ответы на вопрос 2
Sanan07
@Sanan07
Писатель-прозаик
Вам надо в таблицу Orders добавить вторичный ключ для связи с таблицей Clients. т.е. добавить поле clients_id. И далее через inner join связаться с таблицей Discount и посчитать общую скидку.
Ответ написан
@vshvydky
в Orders добавляем id_client
count_orders делаем как интервал от 5 до 10 и от 10 до 100000000000000 к примеру, потому как иначе без функций и доп выборок обойтись будет проблемно
select
Discount.percent_discount
from
Discount
where 
(select count(Orders.id_client) where id_client = ...) BETWEEN Discount.count_orders_min AND Discount.count_orders_max


как-то так, не проверял на работоспособность, но логику я бы взял примерно такую

И я бы объединил поля Name Surname , есть ли смысл держать их отдельно?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы