在将 varchar 值 '奋斗林场' 转换成数据类型 int 时失败。求解决方法?
select tb.* ,管护责任书.管护负责人 from (
SELECT 林业局, 林场, danwei, RENSHU, 姓名 , 性别, 年龄, 原岗位,责任区号, 日期,管护人编号,是否下岗职工,是否新增就业
FROM ( SELECT 林业局, 林场, danwei, RENSHU, 姓名,性别, 年龄, 原岗位,责任区号, 日期,管护人编号,是否下岗职工,是否新增就业 FROM View_林场分组 ) AS derivedtbl_1
UNION (SELECT 林业局, 林场, danwei, RENSHU, 姓名,性别, 年龄, 原岗位,责任区号, 日期, 管护人编号,是否下岗职工,是否新增就业 FROM View_林业局人数 )
UNION (SELECT 林业局, 林场, danwei, RENSHU, 姓名,性别, 年龄, 原岗位,责任区号, 日期, 管护人编号,是否下岗职工,是否新增就业 FROM View_林场分组 where 是否下岗职工=1 or 是否新增就业=1)
UNION (SELECT 林业局, 林场, danwei, RENSHU, 姓名,性别, 年龄, 原岗位,责任区号, 日期, 管护人编号,是否下岗职工,是否新增就业 FROM View_林场人员)
)
tb
left join 管护责任书 on tb.管护人编号 = 管护责任书.管护人编号
ORDER BY tb.林业局 ,tb.林场, tb.姓名
报错:
在将 varchar 值 '奋斗林场' 转换成数据类型 int 时失败。
求解决方法?新手求教
------解决方案--------------------现在最关键的是定位问题,你可以一步一步来:
select tb.* ,管护责任书.管护负责人 from (
SELECT 林业局, 林场, danwei, RENSHU, 姓名 , 性别, 年龄, 原岗位,责任区号, 日期,管护人编号,是否下岗职工,是否新增就业
FROM ( SELECT 林业局, 林场, danwei, RENSHU, 姓名,性别, 年龄, 原岗位,责任区号, 日期,管护人编号,是否下岗职工,是否新增就业 FROM View_林场分组 ) AS derivedtbl_1 )
tb
left join 管护责任书 on tb.管护人编号 = 管护责任书.管护人编号
ORDER BY tb.林业局 ,tb.林场, tb.姓名
然后再把其他的union 加进去,看看会不会报错,这样就能炸到问题了。
------解决方案--------------------数据类型不匹配.
举个简单的例子,重现一下LZ的问题,应该明白了吧.
select 100 'x'
union all
select '奋斗林场' 'x'
Msg 245, Level 16, State 1, Line 1
在将 varchar 值 '奋斗林场' 转换成数据类型 int 时失败。