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

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

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

Пример:

Если поле valuta = $, то поле price ==price*31
а если valuta = £, то поле price ==price*50
...
Рейтинг: 0 / 0
как можно построить запрос c пересчетом поля
    #32230742
BigHarry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наверно - придется ещо одну таблицу заводить с курсами валют и джонить ее с таблицой цен.
...
Рейтинг: 0 / 0
как можно построить запрос c пересчетом поля
    #32231115
Фотография mahoune
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
как можно построить запрос c пересчетом поля
    #32231296
Фотография Хрен
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
select  case valuta when '$' then price* 30 . 1  when '&' then price* 50  else price  end from ...
...
Рейтинг: 0 / 0
как можно построить запрос c пересчетом поля
    #32232540
vivft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Последний вариант самый подходящий, вот только как результату присвоить имя?
...
Рейтинг: 0 / 0
как можно построить запрос c пересчетом поля
    #32232692
BigHarry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ага - и каждый раз, кады курс у валюты меняется - лезть в исходники и переписывать запрос, вместо того, что бы в таблицу валют прописать новый курс.
http://www.mysql.com/doc/ru/Control_flow_functions.html
...
Рейтинг: 0 / 0
как можно построить запрос c пересчетом поля
    #32233010
Фотография Хрен
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
select case ........ end as newfieldname from ..........


2 BigHarry: Какой вопрос - такой ответ. Способ можно подсказать, а дальше пусть автор решает как ему удобней.
...
Рейтинг: 0 / 0
как можно построить запрос c пересчетом поля
    #32235204
vivft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите как правильно объединить 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
как можно построить запрос c пересчетом поля
    #32238102
acol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тема практически исчерпана, но есть еще один дедовский метод

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


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