From: | Jiri Nemec <konference(at)menea(dot)cz> |
---|---|
To: | pgsql-general(at)postgresql(dot)org |
Subject: | Rounding in PGSQL |
Date: | 2004-08-07 14:16:54 |
Message-ID: | 13704076.20040807161654@menea.cz |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | 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
From | Date | Subject | |
---|---|---|---|
Next Message | Jan Wieck | 2004-08-07 14:24:34 | Re: Updateable Views? |
Previous Message | Jeff | 2004-08-07 11:30:51 | Re: Out of swap space & memory |