SQL出错

image.png

预览时全为0,正确的值应该是小数

image.png


AA

image.png

BB

image.png







FineReport 宝贝 发布于 2020-9-21 14:45 (编辑于 2020-9-21 14:57)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共6回答
最佳回答
0
fish19880902Lv4初级互助
发布于2020-9-21 15:30

AA.AB/(BB.BBB+AA.AB) 

改成  cast(AA.AB/(BB.BBB+AA.AB)  as numeric(30,2))   保留小数位数。另外再重命名字段。

如果还是不行,把每个字段都转下格式

cast(

cast(AA.AB as numeric(20,0))/(cast(BB.BBB as numeric(20,0))+cast(AA.AB as numeric(20,0)))

 as numeric(30,2))

最佳回答
0
唱跳rap全能选手Lv7中级互助
发布于2020-9-21 14:48

单独预览AA和BB,看下有没有问题

最佳回答
0
yiyemeiyingLv4高级互助
发布于2020-9-21 14:49

-_-||把这三个字段分别放出来看看字段值内容,然后根据字段值结果再排查!


image.png

  • 宝贝 宝贝(提问者) 我把预览值贴出来了,
    2020-09-21 14:58 
  • yiyemeiying yiyemeiying 回复 宝贝(提问者) select cast(AA.AB/(BB.BBB+AA.AB) as decimal(18,4)) from ...
    2020-09-21 15:12 
  • 宝贝 宝贝(提问者) 回复 yiyemeiying 已经解决了,谢谢
    2020-09-21 15:47 
最佳回答
0
snrtuemcLv8专家互助
发布于2020-9-21 14:49(编辑于 2020-9-21 14:57)

你的数据库里面,所有做除法的都是整数,所以,结果也是整数了

这个值乘以个小数 1.00*AA.AB/(BB.BBB+AA.AB)

  • 宝贝 宝贝(提问者) 在数据集里应该不会自动约分的吧
    2020-09-21 14:59 
  • snrtuemc snrtuemc 回复 宝贝(提问者) 你贴上1.00这个乘数试一下吧
    2020-09-21 15:04 
  • 宝贝 宝贝(提问者) 回复 snrtuemc 我试一下
    2020-09-21 15:05 
最佳回答
0
LarryAbbyLv5中级互助
发布于2020-9-21 14:49(编辑于 2020-9-21 14:49)

是不是小数很小?你看下AA.AB和BB.BBB的值事什么样的


最佳回答
0
shirokoLv6资深互助
发布于2020-9-21 14:58

image.png

改成 SELECT AA.AB,BB.BBB,BB.B FROM BB LEFT JOIN AA ON BB.B=AA.A

预览一下截图发出来看一下。。

你说正确的应该怎么样,我们怎么知道啊。。。

  • 宝贝 宝贝(提问者) 我把预览截图发出来了,就是求离职人数除以总人数+离职人数的值
    2020-09-21 15:01 
  • 7关注人数
  • 428浏览人数
  • 最后回答于:2020-9-21 15:30
    请选择关闭问题的原因
    确定 取消
    返回顶部