您的位置:程序门 -> db2 -> 数据库开发



关于db2数据类型的问题?


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


关于db2数据类型的问题?
发表于:2007-06-18 17:50:29 楼主
这是我的表(fabc2cc)结构,aab019(varchar),aab022(varchar),aab301(varchar),aae043(varchar),aab171(decimal),aab216(decimal)

这是我的sql语句
select a15.vae521     vae521,
a12.vab568     vab568,
a13.vab501     vab501,
a14.vlb001     vlb001,
(((sum(a11.aab216)   *   1.0)   /   (case   sum(a11.aab171)   when   0   then   null   else   sum(a11.aab171)   end))   *   1.0)     wjxbfs1
from fabc2cc a11
join daab301 a12
    on   (a11.aab301   =   a12.aab301)
join daab019 a13
    on   (a11.aab019   =   a13.aab019)
join daab022 a14
    on   (a11.aab022   =   a14.aab022)
join daae043 a15
    on   (a11.aae043   =   a15.aae043)
group   by a15.vae521,
a12.vab568,
a13.vab501,
a14.vlb001

由于想得到aab216/aab171的百分比,最开始没乘1.0,结果db2给我全切除了小数部分,结果要不为0要不为1,当我乘了1.0后,结果又只有一位有效小数,其余全是0!
发表于:2007-06-19 09:53:341楼 得分:0
你用这个试试:decimal(sum(a11.aab216),7,2),这个会将sum的结果转成总长度7位,带两位小数的数字.
aab171和aab216本来就是decimal的,不转换应该会保留小数位啊.
发表于:2007-06-19 13:02:382楼 得分:0
我是在做一个dss,前端展示工具用的是mstr,在mstr里没有decimal()这个函数!
郁闷呐!!!!!!!!!!!!!
发表于:2007-06-19 14:28:083楼 得分:0
sum(double(a11.aab216))/(case   sum(a11.aab171)   when   0   then   null   else   sum(a11.aab171)   end))
这样就行了,能保留三位小数。
发表于:2007-06-19 17:48:464楼 得分:0
double()也不支持,这mstr太郁闷!
发表于:2007-06-20 11:21:535楼 得分:0
double是数据库支持的,你把它作为sql发送到数据库,让数据库执行,这样也不行吗?
发表于:2007-06-22 23:07:366楼 得分:0
decimal(sum(a11.aab216),7,2)这个是在sql语句里面使用的.
发表于:2007-06-23 12:23:537楼 得分:0
sql语句里有的
发表于:2007-06-26 17:16:498楼 得分:0
decimal()函数是数据库支持的
发表于:2007-07-02 15:32:599楼 得分:0
该回复于2007-12-29 16:24:21被管理员或版主删除
发表于:2007-07-06 10:28:2310楼 得分:0
mstr要支持數據庫函數要用applysimple()函數才行,今天終于搞定!


快速检索

最新资讯
热门点击