从数据类型 varchar 转换为 numeric 时出错。可数据没问题啊

420jil 2016-06-23 08:27:11
我进行统计的语句如下,主要是两个表,其中参数表SYS_PARAM里用到两个参数,当手术医生为主刀时,用‘zdjx’,值为1,为一助时,用‘yzjx’,值为0.5,如按下面语句统计每个医生的工作量,是可以正确执行的。

select surgeon_name,
sum(i.ItemPoint *sp.PrmValue * SYS_PARAM_3.PrmValue) as itempoint
from v_surgeryJournal j LEFT OUTER JOIN dbo.SERV_ClinicItem AS i ON i.ItemCode = j.ItemCode,
SYS_PARAM as sp, dbo.SYS_PARAM AS SYS_PARAM_3 where sp.PrmName = 'SAccountBase'
and SYS_PARAM_3.PrmName =(case surgernclass when '一助' then 'yzjx' when '主刀' then 'zdjx' end) and surgeon_name is not null
and IsNumeric(surgeon_name)=0 AND operatoin_time>='2016-04-30' and operatoin_time<='2016-05-30'
group by surgeon_name

但如果统计整个医院总的工作量,改为下面的语句(去掉group by),则提示“从数据类型 varchar 转换为 numeric 时出错。“,不知为何?感觉这句有问题 SYS_PARAM_3.PrmName =(case surgernclass when '一助' then 'yzjx' when '主刀' then 'zdjx' end)

select ‘第一人民医院’ as surgeon_name,
sum(i.ItemPoint *sp.PrmValue * SYS_PARAM_3.PrmValue) as itempoint
from v_surgeryJournal j LEFT OUTER JOIN dbo.SERV_ClinicItem AS i ON i.ItemCode = j.ItemCode,
SYS_PARAM as sp, dbo.SYS_PARAM AS SYS_PARAM_3 where sp.PrmName = 'SAccountBase'
and SYS_PARAM_3.PrmName =(case surgernclass when '一助' then 'yzjx' when '主刀' then 'zdjx' end) and surgeon_name is not null
and IsNumeric(surgeon_name)=0 AND operatoin_time>='2016-04-30' and operatoin_time<='2016-05-30'
...全文
139 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
420jil 2016-06-23
  • 打赏
  • 举报
回复
果然是数据有问题,多谢版主
卖水果的net 2016-06-23
  • 打赏
  • 举报
回复
只要提示了,那肯定是数据有问题的,这个不要怀疑,如果不涉密的话,可以把库发上来;

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧