Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> MYSQL: выборка на основании валютного эквивалента 
:(
    Опции темы
armor85
Дата 12.1.2009, 14:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Злой программер
*


Профиль
Группа: Участник
Сообщений: 246
Регистрация: 6.2.2007
Где: Сочи, блин!

Репутация: нет
Всего: -1



Здравствуйте,

есть таблица с полями id, name, price, currency.

В price записывается цена, в currency валюта.

Валют всего три, в базу пишутся как 1,2,3;

Как можно выбрать из базы по условию (300<x<800) usd,

если данные в разных валютах?

Просто в базе около 8000 позиций,

не хочется грузить все, а потом отбирать через php.
PM MAIL   Вверх
Akina
Дата 12.1.2009, 14:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 45
Всего: 454



Должна быть ещё и таблица курсов... соответственно вводишь вычисляемое поле, которое считает цену в баксах и отбирает по нему.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
armor85
Дата 12.1.2009, 14:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Злой программер
*


Профиль
Группа: Участник
Сообщений: 246
Регистрация: 6.2.2007
Где: Сочи, блин!

Репутация: нет
Всего: -1



Таблица есть.

А как сделать не подскажите, а то я в SQL не очень.

 smile 
PM MAIL   Вверх
Akina
Дата 12.1.2009, 14:34 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 45
Всего: 454



Нет, не подскажу. Потому что не знаю о каком из многочисленных эскуэлей речь.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
armor85
Дата 12.1.2009, 14:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Злой программер
*


Профиль
Группа: Участник
Сообщений: 246
Регистрация: 6.2.2007
Где: Сочи, блин!

Репутация: нет
Всего: -1



MySQL, простите что сказу не указал.
PM MAIL   Вверх
Zloxa
Дата 12.1.2009, 17:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 53
Всего: 161



MySql, к сожалению, не знаю но на ANSI это было бы както так?
Код

select
 *
from items
inner join 
 (select 
    mcr.curr
    ,curr_rate
  from (
    select max(rate_date) max_rate_date, curr
    from curr_rates
    where rate_date >= :request_date
    group by curr
    ) mcr
  inner join curr_rates cr on mcr.max_rate_date = c.rate_date
                           and mcr.curr = cr.curr
 ) acr
 on acr.curr = items.currency
where price*acr.curr_rate > :low_bound 
      and price*acr.curr_rate < :high_bound


ЗЫ есть возможность оптимизировать выбор текущего курса на дату используя "бабушкин метод"

Это сообщение отредактировал(а) Zloxa - 12.1.2009, 18:12


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
Akina
Дата 12.1.2009, 18:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 45
Всего: 454



Таблица Cources: 
Код

currency Name CourceToUSD
    1     USD    1.0
    2    Euro    1.3397
    3     RUR    0.03326
Код

Select `Price`*`CourceToUSD` As `PriceInDollars`
From `table`
Inner Join `Cources`
On `table`.`currency`=`Cources`.`currency`
Where `PriceInDollars` between 300 And 800



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Zloxa
Дата 12.1.2009, 18:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 53
Всего: 161



Цитата(Akina @  12.1.2009,  18:13 Найти цитируемый пост)
Таблица Cources

Курсы валют, как правило, имеют измерение - дата ;)


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
Akina
Дата 12.1.2009, 23:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 45
Всего: 454



Цитата(Zloxa @  12.1.2009,  19:19 Найти цитируемый пост)
Курсы валют, как правило, имеют измерение - дата ;) 

Если человек понимает, что ему пишут, для него не составит труда внести коррективы. Суть же ему дана.
К тому же обычно в такой таблице даются либо курсы валюты в рублях, либо (что правильнее) две валюты и кросс-курс.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Составление SQL-запросов | Следующая тема »


 




[ Время генерации скрипта: 0.0567 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.