Рассчитать цену с MySQL запросом - PullRequest
0 голосов
/ 03 мая 2011

гуру!Я застрял.Каталог товаров имеет цены, зависящие от его количества.Вот пример таблиц:

items: just item definitions
-------------------------
item_id | item_title
-------------------------
1       | "sample item"
2       | "another item"

items_prices: prices dependent to item quantity. 
              Less price taken for more quantity of item
----------------------------
item_id | quantity  | price
----------------------------
1       | 1         | 100
1       | 5         | 80
1       | 10        | 60
2       | 1         | 120
2       | 3         | 100

cart
-------------------
item_id | quantity  
-------------------
1       | 20
2       | 2

Можно ли получить текущую стоимость корзины одним запросом?

1 Ответ

1 голос
/ 03 мая 2011
select sum(x.totalcost)
from (
    select c.item_id, c.quantity * ip.price as totalcost
    from cart c
    join items_prices ip
      on c.item_id = ip.item_id
    left join items_prices ip2
      on ip2.quantity > ip.quantity
      and c.quantity >= ip2.quantity
    where c.quantity >= ip.quantity
      and ip2.quantity is null
) x

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

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