所有的日期字段都为字符串报错为expected char got number从报错分析来看是类型不一样,也就是*100不是数字值,但是第二段代码却过了,这就很不理解了,如果真的类型不一样第二段*100也会报错才对下面的这两处为什么会有冲突select case when sysdate < to_date(cih.begin_year || '-' || cih.begin_month || '-01', 'yyyy-MM-dd') then '0.0' when cih2.time2<sysdate then '100' when cih2.time2-to_date(cih.begin_year || '-' || cih.begin_month || '-01', 'yyyy-MM-dd')=0 then '0.0' --这里
else (((to_date(cih.begin_year || '-' || cih.begin_month || '-01',
'yyyy-MM-dd')-sysdate)+1)/(cih2.time2-to_date(cih.begin_year || '-' ||
cih.begin_month || '-01', 'yyyy-MM-dd'))*100) --这里,报错的地方这个100下面有下划线end 项目总体进度 from cbm_item_headers cih,(select a.*,(case when To_number(a.end_month, '99') < 12 then to_date(a.end_year || '-' || to_char(cih2.end_month2,'99') || '-01', 'yyyy-MM-dd') else to_date(to_char(cih2.end_year2,'9999') || '-' || '01' || '-01', 'yyyy-MM-dd') end) time2from cbm_item_headers a,(select
item_code,to_number(end_year, '9999') + 1
end_year2,to_number(end_month, '99')+1 end_month2 from cbm_item_headers)
cih2 where a.item_code=cih2.item_code) cih2where cih.item_code=cih2.item_code我去掉这两处其中一处就可以运行select(((to_date(cih.begin_year
|| '-' || cih.begin_month || '-01',
'yyyy-MM-dd')-sysdate)+1)/(cih2.time2-to_date(cih.begin_year || '-' ||
cih.begin_month || '-01', 'yyyy-MM-dd'))*100) --去掉了case就可以运行from cbm_item_headers cih,(select a.*,(case when To_number(a.end_month, '99') < 12 then to_date(a.end_year || '-' || to_char(cih2.end_month2,'99') || '-01', 'yyyy-MM-dd') else to_date(to_char(cih2.end_year2,'9999') || '-' || '01' || '-01', 'yyyy-MM-dd') end) time2from cbm_item_headers a,(select
item_code,to_number(end_year, '9999') + 1
end_year2,to_number(end_month, '99')+1 end_month2 from cbm_item_headers)
cih2 where a.item_code=cih2.item_code) cih2where cih.item_code=cih2.item_code----------------------------------------------------------select case when sysdate < to_date(cih.begin_year || '-' || cih.begin_month || '-01', 'yyyy-MM-dd') then '0.0' when cih2.time2<sysdate then '100' when cih2.time2-to_date(cih.begin_year || '-' || cih.begin_month || '-01', 'yyyy-MM-dd')=0 then '0.0' --去掉了else就可以运行end 项目总体进度 from cbm_item_headers cih,(select a.*,(case when To_number(a.end_month, '99') < 12 then to_date(a.end_year || '-' || to_char(cih2.end_month2,'99') || '-01', 'yyyy-MM-dd') else to_date(to_char(cih2.end_year2,'9999') || '-' || '01' || '-01', 'yyyy-MM-dd') end) time2from cbm_item_headers a,(select
item_code,to_number(end_year, '9999') + 1
end_year2,to_number(end_month, '99')+1 end_month2 from cbm_item_headers)
cih2 where a.item_code=cih2.item_code) cih2where cih.item_code=cih2.item_code
- 1 回答
- 0 关注
- 1049 浏览
添加回答
举报
0/150
提交
取消