一个比较诡异的相除问题

hou1104 2010-12-02 12:43:07

create table test
(
date varchar(10),
data numeric(10,2)
);
insert into test values('20101001',1.00);
insert into test values('20101001',53.2);
insert into test values('20101001',871.20);
insert into test values('20101002',81.90);
insert into test values('20101002',39.2);
insert into test values('20101002',51.9);

select sum(a.data-b.data),sum(b.data),sum(a.data-b.data)/sum(b.data) from test a left join test b on date(substr(a.date,1,4) || '-' || substr(a.date,5,2) || '-' || substr(a.date,7,2)) = date(substr(b.date,1,4) || '-' || substr(b.date,5,2) || '-' || substr(b.date,7,2)) + 1 day where a.date = '20101002';


最后一句sql的意思其实就是让它自己与自己相连,条件是a.日期=b.日期+1 day
奇怪的是第三列 结果居然是0。
很是让人费解,第一列和第二列明明有值,第三列为什么会是零呢。

请知道的朋友告知,谢谢。
...全文
51 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
hou1104 2010-12-02
  • 打赏
  • 举报
回复
非常感谢这位兄弟 ok了
liyan93834183 2010-12-02
  • 打赏
  • 举报
回复
你把sum(a.data-b.data)/sum(b.data) 这个转换一下类型
decimal(sum(a.data-b.data))/sum(b.data)
db2数据相除的时候就是有这个问题

5,889

社区成员

发帖
与我相关
我的任务
社区描述
IBM DB2 是美国IBM公司开发的一套关系型数据库管理系统,它主要的运行环境为UNIX(包括IBM自家的AIX)、Linux、IBM i(旧称OS/400)、z/OS,以及Windows服务器版本
社区管理员
  • DB2
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧