Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / как можно построить запрос c пересчетом поля / 13 сообщений из 13, страница 1 из 1
07.08.2003, 10:30
    #32229693
vivft
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как можно построить запрос c пересчетом поля
Подскажите как можно построить запрос, чтобы провести выборку из базы и пересчет поля.

Пример:
Если поле valuta = $, то поле price ==price*31

SELECT price, valuta
FROM `test`
WHERE val = '$' … а дальше???
...
Рейтинг: 0 / 0
07.08.2003, 12:47
    #32229885
BigHarry
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как можно построить запрос c пересчетом поля
Попробуй так:
SELECT price, valuta, IF(valuta='usd',price*31, price) AS Zena
FROM `test`
...
Рейтинг: 0 / 0
07.08.2003, 12:48
    #32229887
BigHarry
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как можно построить запрос c пересчетом поля
SELECT IF(valuta='usd',price*31, price) AS Zena FROM `test`
...
Рейтинг: 0 / 0
07.08.2003, 20:33
    #32230542
vivft
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как можно построить запрос c пересчетом поля
Как создать запрос если несколько значений для пересчета:

Пример:

Если поле valuta = $, то поле price ==price*31
а если valuta = £, то поле price ==price*50
...
Рейтинг: 0 / 0
08.08.2003, 09:59
    #32230742
BigHarry
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как можно построить запрос c пересчетом поля
Наверно - придется ещо одну таблицу заводить с курсами валют и джонить ее с таблицой цен.
...
Рейтинг: 0 / 0
08.08.2003, 13:34
    #32231115
mahoune
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как можно построить запрос c пересчетом поля
BigHarry - дело говорит. А так IF используй, или:
Код: plaintext
1.
2.
3.
SET @CurrRate= 0 ;
SELECT IF(valuta='usd',@CurrRate= 31 , @CurrRate= 1 ) AS SetCurrRate,
Price*@CurrRate FROM `test`
...
Рейтинг: 0 / 0
08.08.2003, 14:59
    #32231296
Хрен
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как можно построить запрос c пересчетом поля
Код: plaintext
1.
select  case valuta when '$' then price* 30 . 1  when '&' then price* 50  else price  end from ...
...
Рейтинг: 0 / 0
11.08.2003, 10:35
    #32232540
vivft
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как можно построить запрос c пересчетом поля
Последний вариант самый подходящий, вот только как результату присвоить имя?
...
Рейтинг: 0 / 0
11.08.2003, 12:08
    #32232692
BigHarry
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как можно построить запрос c пересчетом поля
Ага - и каждый раз, кады курс у валюты меняется - лезть в исходники и переписывать запрос, вместо того, что бы в таблицу валют прописать новый курс.
http://www.mysql.com/doc/ru/Control_flow_functions.html
...
Рейтинг: 0 / 0
11.08.2003, 15:40
    #32233010
Хрен
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как можно построить запрос c пересчетом поля
Код: plaintext
1.
select case ........ end as newfieldname from ..........


2 BigHarry: Какой вопрос - такой ответ. Способ можно подсказать, а дальше пусть автор решает как ему удобней.
...
Рейтинг: 0 / 0
13.08.2003, 12:28
    #32235204
vivft
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как можно построить запрос c пересчетом поля
Подскажите как правильно объединить 2-а запроса:
Первый отвечает за конвертацию валюты в единое значение и производит поиск:


$konv = mysql_query("SELECT id_tr, case valuta when '0' then price/$dkr
when '2' then price*$ekd else price end as newf FROM
ppp HAVING newf >= '$cena'");

Второй производит поиск названий фирмы если название задали:


$select = "SELECT firma, price, id_tr";
$from = " FROM ppp, ttt";
$where = " WHERE ppp.id_tr=ttt.id_trp";

if ($firma != "") { $where .= " AND firma LIKE '%$firma%'";}
else {$where .= "group by id_tr order by price }


$res = mysql_query($select . $from . $where);
etc....
...
Рейтинг: 0 / 0
15.08.2003, 21:25
    #32238102
acol
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как можно построить запрос c пересчетом поля
Тема практически исчерпана, но есть еще один дедовский метод

SELECT price*(31*(valuta = '$') + 50*(valuta = '£')) from test
...
Рейтинг: 0 / 0
16.08.2003, 21:19
    #32238324
Хрен
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как можно построить запрос c пересчетом поля
Хехехе. Знаем мы этот дедовский метод. Там есть подводный камень. Что, если valuta будет не $ и не & а скажем "ю" или 'z' ?
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / как можно построить запрос c пересчетом поля / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]