Rounding in PGSQL

Поиск
Список
Период
Сортировка
От Jiri Nemec
Тема Rounding in PGSQL
Дата
Msg-id 13704076.20040807161654@menea.cz
обсуждение исходный текст
Ответы Re: Rounding in PGSQL  (Mike Nolan <nolan@gw.tssi.com>)
Re: Rounding in PGSQL  (Joe Conway <mail@joeconway.com>)
Список pgsql-general
Hello all,

I have got one table with rounding values, table contains
prices and round types.

id     price_from     price_to      rounding
1      0              1500          0.1
2      1500           5000          1
3      5000           15000         10
4      15000          0             100

Eg.:
price = 15.5758, rounded = 15.6
price = 1825.5540, rounded = 1826
price = 7125.123, rounded = 7130
price = 11825.5540, rounded = 11800

Is there some possibility how to write own PGSQL function which I pass in
price, function selects correct value from "rounding" column and
return rounded value?

I have got PHP and MySQL function, it returns correct result but I
need to count rounded price in db becase I have to compare this
rounded price with other records.

function roundValue($value){

  $valueAll = (int) $value;

  $tmpData = dbClass::fetch_assoc(dbClass::query(
            'SELECT rv.rounding
        FROM shop_rounding_values rv, shop_rounding r
        WHERE rv.value_from <= \''.$valueAll.'\' AND (
        rv.value_to > \''.$valueAll.'\' OR rv.value_to=0) AND
        rv.rounding_id = r.id AND r.feshow = "y"'));

        $rounding = (int) $tmpData['rounding'];

        if($rounding == 0){
           $value = round($value, 1);
        }else if ($rounding == 1){
           $value = round($value);
        }else{
           $value = round($value, substr_count($rounding, '0')*-1);
        }

   return $value;
}

Thanks for your replies.

--
Jiri Nemec
www.menea.cz - web solutions


В списке pgsql-general по дате отправления:

Предыдущее
От: Jeff
Дата:
Сообщение: Re: Out of swap space & memory
Следующее
От: Mike Nolan
Дата:
Сообщение: Re: Rounding in PGSQL