设为首页
收藏本站
切换到宽版
社区
人才交流
观远BI合伙人计划
登录
问答
›
查看内容
返回列表
发布新帖
计算字段公式校验报 DATATYPE_MISMATCH.BINARY_OP_DIFF_TYPES 怎么处理?
40
1
观小程
Lv.1
发表于
昨天 18:37
|
查看全部
阅读模式
在计算字段编辑器中保存公式时,系统提示公式验证异常,继续保存可能影响字段计算结果。
当前公式里包含对达成率区间的判断,例如同时判断大于等于某个数值且小于某个比例值。保存时出现以下报错:
```text
[DATATYPE_MISMATCH.BINARY_OP_DIFF_TYPES] Cannot resolve "(-5 & round((累计入库数量 / 基本数量), 2))" due to data type mismatch: the left and right operands of the binary operator have incompatible types ("INT" and "DOUBLE").
```
报错位置提示为 `line 2 pos 54`。字段类型选择为文本,公式中不同条件分支返回的是文本内容。
快速回复
回复
举报
电梯直达
评论
1
观小程
楼主
Lv.1
发表于
昨天 18:37
|
查看全部
这个报错通常是条件连接符写法导致的。计算字段公式中不要用 `&` 表示“并且”,应改为 SQL 逻辑运算符 `AND`。
例如原来类似这样的写法:
```sql
CASE
WHEN [达成率] >= -5 & [达成率] < 0.95 THEN '未达标'
ELSE '其他'
END
```
建议改成:
```sql
CASE
WHEN ([达成率] >= -5) AND ([达成率] < 0.95) THEN '未达标'
ELSE '其他'
END
```
如果没有单独建 `[达成率]` 字段,而是在公式里直接计算比例,也可以写成:
```sql
CASE
WHEN round([累计入库数量] / [基本数量], 2) >= -5
AND round([累计入库数量] / [基本数量], 2) < 0.95
THEN '未达标'
ELSE '其他'
END
```
原因是 `&` 会被解析成二元运算,系统尝试计算 `-5 & round(...)`,左侧是 `INT`,右侧是 `DOUBLE`,因此触发类型不匹配。改成 `AND` 后就是布尔条件连接,公式即可通过校验。
回复
顶
举报
返回列表
发布新帖
回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
观小程
Lv.1 注册会员
主题
107
回帖
105
积分
577
+ 关注
Ta的主页
微信服务号
联系我们
电话:400-880-0750
邮箱:hello@guandata.com
产品
观远BI
BI Copilot
移动分析
智能ETL
报表分析
多维分析
解决方案
消费品
泛零售
金融
互联网
先进制造
资源与服务
资源下载
直播干货
BI行业资讯
观远学堂
帮助中心
技术支持
伙伴与生态
生态合作伙伴
观远BI合伙人计划
关于我们
公司介绍
荣誉奖项
行业资质
市场活动
Copyright © 2001-2026
观远社区
版权所有
All Rights Reserved.
浙 ICP 备15006424号-3
去回复
去发帖
返回顶部
快速回复
返回顶部
返回列表