как умножить определённый столбец на 8 ?

Тема в разделе "Базы данных", создана пользователем nmDimas2, 20 окт 2010.

Статус темы:
Закрыта.
Модераторы: latteo
  1. nmDimas2

    nmDimas2 Постоялец

    Регистр.:
    20 апр 2010
    Сообщения:
    78
    Симпатии:
    12
    есть таблица (product) и в ней есть колона цена (price) там указано в долларах. Надо перевести по курсу в грн в ручную долго там 2 тыс. товаров
    как создать запрос или как сделать так чтоб все умножить на 8?
     
  2. Otis22

    Otis22 Создатель

    Регистр.:
    13 фев 2009
    Сообщения:
    30
    Симпатии:
    9
    UPDATE product SET price = price*8 WHERE 1=1(или если не нужно множить всё пишите фильтр).
    Можно сделать даже так.
    ALTER TABLE ADD price_ua FLOAT;
    UPDATE product SET price_ua = price*8 WHERE 1=1;
    Что бы не потерять оригинальные цены
     
    nmDimas2 и latteo нравится это.
  3. Nei

    Nei Nosce te ipsum

    Регистр.:
    5 сен 2009
    Сообщения:
    608
    Симпатии:
    479
    А вот это вот "WHERE 1=1" зачем?
    Можно просто UPDATE product SET price = price*8
     
    nmDimas2 нравится это.
  4. FaLL3N

    FaLL3N Постоялец

    Регистр.:
    4 дек 2006
    Сообщения:
    100
    Симпатии:
    17
    Зачем апдейт? простейшая функция прокатит на ура, намного быстрее апдейта, и не изменяя ориг. данных:
    Код:
    CREATE function multiply8 (price integer)
    returns integer
    return price*8;
    
    Код:
    select multiply8(price) from product;
    
    Или простейшая вьюшка :)

    Код:
    CREATE VIEW `products_usd` AS select <перечисление полей, кроме цены>,price*8 as price from `products`;
    
    Код:
    select * from products_usd;
    Но с функцией интерестнее, можно прикрутить парсер курсов валют НБУ и показывать в разных валютах (рыночный курс рсчитывается так: нижний - курс НБУ*0,98, верхний НБУ*1,02 - установленое по законодательству колебание в пределах 2% для ком банков)

    Код:
    CREATE function course(price integer,course float)
    returns float
    return round((price*course),2);
    
    Код:
    Usd:
    select course(price,7.95) from products;
    
    Eur:
    select course(price,10.45) from products;
    
     
Статус темы:
Закрыта.