SQL两列相除报错

标准成本/价格单位显示报错,

SELECT LFGJA*100+LFMON as "期间",MATNR as "品号",VERPR/PEINH as "实际成本",STPRS/PEINH  as "标准成本"

FROM "SAPABAP1"."MBEWH"

where 1=1  ${if(len(期间) == 0,""," and LFGJA*100+LFMON = '" + 期间 + "'")}  and BWKEY = '1012' 

image.png

FineReport SQL ChaoniubiH 发布于 2023-2-13 15:32
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
Z4u3z1Lv6专家互助
发布于2023-2-13 15:35(编辑于 2023-2-13 15:36)

SqlServer:

SELECT LFGJA*100+LFMON as "期间",MATNR as "品号",(CASE WHEN ISNULL(PEINH,0)=0 THEN NULL ELSE VERPR/PEINH END) as "实际成本",STPRS/PEINH  as "标准成本"

FROM "SAPABAP1"."MBEWH"

where 1=1  ${if(len(期间) == 0,""," and LFGJA*100+LFMON = '" + 期间 + "'")}  and BWKEY = '1012' 

ORACLE:

SELECT LFGJA*100+LFMON as "期间",MATNR as "品号",(CASE WHEN NVL(PEINH,0)=0 THEN NULL ELSE VERPR/PEINH END) as "实际成本",STPRS/PEINH  as "标准成本"

FROM "SAPABAP1"."MBEWH"

where 1=1  ${if(len(期间) == 0,""," and LFGJA*100+LFMON = '" + 期间 + "'")}  and BWKEY = '1012' 

MYSQL

SELECT LFGJA*100+LFMON as "期间",MATNR as "品号",(CASE WHEN IFNULL(PEINH,0)=0 THEN NULL ELSE VERPR/PEINH END) as "实际成本",STPRS/PEINH  as "标准成本"

FROM "SAPABAP1"."MBEWH"

where 1=1  ${if(len(期间) == 0,""," and LFGJA*100+LFMON = '" + 期间 + "'")}  and BWKEY = '1012' 

  • ChaoniubiH ChaoniubiH(提问者) SAPhana数据库呢
    2023-02-13 15:49 
  • Z4u3z1 Z4u3z1 回复 ChaoniubiH(提问者) https://www.likecs.com/show-308350036.html#sc=1200 参考这个
    2023-02-13 15:53 
最佳回答
0
YmengLv5中级互助
发布于2023-2-13 15:36(编辑于 2023-2-13 15:40)

看一下有没有分母为零的数据,分母最好做个为0判断

最佳回答
0
CD20160914Lv8专家互助
发布于2023-2-13 15:36

你是什么数据库?你看一下你的数据格式。里面是不是有空格的行,或者其它不可见的字符,或者是文本的,还有如果不相除的话,只写字段是否报错,把明细拉出来看

  • 3关注人数
  • 261浏览人数
  • 最后回答于:2023-2-13 15:40
    请选择关闭问题的原因
    确定 取消
    返回顶部