SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 30.07.2012 12:32:47

FaWuS
Участник
Зарегистрирован: 22.12.2009
Сообщений: 5

Пересчет внутри SELECT

Есть интернет-магазин, для него сделан фильтр по цене (от и до) - классические ползунки, как на Яндекс.Маркете.

Запрашиваются границы таким образом:

SELECT MIN(CONVERT(`shop_items_catalog_price`, SIGNED)) as min, MAX(CONVERT(`shop_items_catalog_price`, SIGNED)) as max FROM shop_items_catalog_table


Сейчас появился поставщик, цены на товар у которого указаны в USD. Движок сайта для вывода успешно эти цены пересчитывает на рубли по указанному в базе данных курсу. Но фильтр этого делать не умеет.

Получить курс доллара можно таким запросом:

SELECT `shop_currency_value_in_basic_currency` FROM `shop_currency_table` WHERE `shop_currency_id`='3'


Будет получен результат что-то вроде такого: shop_currency_value_in_basic_currency=31.253243

shop_items_catalog_table в себе содержит не только цены (shop_items_catalog_price) на товары, но и тип валюты (shop_currency_id).

shop_currency_id=1 - рубли (пересчитывать не нужно)
shop_currency_id=3 - доллары (цену необходимо умножать на курс, полученный выше)

Возможно ли в одном запросе запросить границы MIN MAX с учётом курса? Желательно ещё делать округление цены (математическое - в большую или меньшую, чтобы не было знаков после запятой).

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson