在Report里加个公式列,里面数要精确6位

[复制链接]
查看11 | 回复2 | 2011-1-4 10:35:48 | 显示全部楼层 |阅读模式
我在Report,数据模型里建个公式列,需要显示的数要精确到第六位,然后四舍五入。这是我写的再数据库里就能查出来6位,写在Report里就出现编译错误,另外,不知道怎么写四舍五入的函数,请各位高手指教!谢谢啦!!!
在数据库里写的:
selectcast((cast(sum(t.quantity) as float(4))) as decimal(10,6)) from RCV_TRANSACTIONS t
再Report里写的:
function CF_2Formula return number is
f_2 number;
begin
if :P_TYPE='RECEIVE' then
select cast((cast(sum(t.quantity) as float(4))) as decimal(10,6)) into f_2
from RCV_TRANSACTIONS t
where t.transaction_type='REJECT'
and t.po_line_id=

o_line_id and t.shipment_line_id=:shipment_line_id;
else
f_2 :=null;
end if;

RETURN f_2;
end;
回复

使用道具 举报

千问 | 2011-1-4 10:35:48 | 显示全部楼层
round
回复

使用道具 举报

千问 | 2011-1-4 10:35:48 | 显示全部楼层
给个讲解函数和例子你看看!
ROUND
返回数字表达式并四舍五入为指定的长度或精度。
语法
ROUND ( numeric_expression , length [ , function ] )
参数
numeric_expression
精确数字或近似数字数据类型类别的表达式(bit 数据类型除外)。
length
是 numeric_expression 将要四舍五入的精度。length 必须是 tinyint、smallint 或int。当 length 为正数时,numeric_expression 四舍五入为 length 所指定的小数位数。当 length 为负数时,numeric_expression 则按 length 所指定的在小数点的左边四舍五入。
function
是要执行的操作类型。function 必须是 tinyint、smallint 或 int。如果省略 function 或 function 的值为 0(默认),numeric_expression 将四舍五入。当指定 0 以外的值时,将截断 numeric_expression。
返回类型
返回与 numeric_expression 相同的类型。
注释
ROUND 始终返回一个值。如果 length 是负数且大于小数点前的数字个数,ROUND 将返回 0。
示例 结果
ROUND(748.58, -4) 0

当 length 是负数时,无论什么数据类型,ROUND 都将返回一个四舍五入的 numeric_expression。
示例 结果
ROUND(748.58, -1) 750.00
ROUND(748.58, -2) 700.00
ROUND(748.58, -3) 1000.00
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行