【发布时间】:2018-09-24 07:54:37
【问题描述】:
我有一个数据格式问题,我使用了来自两个不同表的帐户级标识符 (accno) 连接,它最初在 FLOAT 类型错误中给出了精度错误。
select rcv.Product, rcv.accno, rcv.date,
bfv.Prod_class_cd, bfv.acc_appsys_id, acc_co_no
from FINAL_RECOVERY rcv
inner join RTL_EXPSR_MTRL bfv
on rcv.accno = bfv.accno and rcv.date = bfv.date
where rcv.Product is null
order by rcv.date;
所以我尝试将 accno 转换为其他各种格式,但仍然没有成功。
on cast(rcv.accno as int) = cast(bfv.accno as int) and rcv.date = bfv.date
on cast(rcv.accno as decimal(12,0)) = cast(bfv.accno as decimal(12,0)) and rcv.date = bfv.date
on cast(rcv.accno as char) = cast(bfv.accno as char) and rcv.date = bfv.date
将它们转换为整数或小数会给我溢出错误消息,如果我转换为字符,我会用完假脱机空间。铸造是我在这里唯一的选择吗?您对如何解决此问题有何建议?
【问题讨论】:
-
我的建议?修复数据,使键的类型正确。
标签: sql join casting overflow teradata