我试着插入一些数据到使用表和子查询的查询中。子查询是使用case子句的地方,并且出现错误:错误[HY000] [IBM] [控制台ODBC iSeries访问] [DB2 UDB] SQL0420 - CAST参数字符无效。DB2错误。通过选择查询插入到表
我只在运行插入命令时出现此错误。当我运行select命令时,没有错误。这是查询
insert into qlib.table
select a.fieldkey, a.field2, ifnull(n.firstdate,0) as firstdate, ifnull(n.lastdate,0) as lastdate, n.totamount, n.timespan
from mainlib.tablea a
left join (select b.fieldkey, MIN(rtrim(b.year)||'-'||case when b.month<10 then '0'||b.month else rtrim(b.month)end) as firstdate,
MAX(rtrim(b.year)||'-'||case when b.month<10 then '0'||b.month else rtrim(b.month) end) as lastdate, sum(b.amount) as totamount,
cast(count(b.year)/12 as char(2))||' Years '||cast(count(b.year)-(count(b.year)/12)*12 as char(2))||' Months' as timespan
from mainlib.tableb b
group by b.fieldkey) n on n.fieldkey = a.fieldkey
表b包含每月储蓄OK。子查询返回每月节省的第一年,最后一个月,总金额以及每月节省的年和月跨度,假设每个月都有节省/存款,对于每个字段关键字
子查询的cast子句有什么问题吗?当我试图使用select命令插入到qlib.table时,我再次遇到错误。