几天后出现了一个奇怪的问题,这使我无法运行任何查询。
SELECT Empid as EmployeeId, EmpName,
CustomerName as 'Distributor Name', Customer.RSCode, markedFor as 'Date Marked For',
CASE WHEN Present = 0 THEN 'ABSENT' ELSE 'PRESENT' END AS Attendance, Reason
FROM EmployeeAttendance_Backup ea, Customer, Employee e, EmployeeMaster em
WHERE
ea.DistID = cast(Customer.RSCode as int)
AND e.EmployeeMasterID=em.Id
AND ea.Empid = em.EmployeeID
--ORDER BY markedFor
如果我运行上面的查询,我会得到~160k - 190k记录,然后它会以错误终止:
转换varchar值'Present时转换失败 500004862'到数据类型int。
我甚至没有选择该字段,因为它正在抛出此错误。
如果我启用了ORDER BY
子句,我没有得到任何记录,而且这个错误:
将varchar值'Hirannaiah K R'转换为数据类型int时转换失败。
EmployeeAttendance_Backup表有近20万条记录。这会导致任何问题吗?我不知道如何寻找解决方案。我尝试通过这个特定员工的考勤表,检查是否有一些记录被错误保存,但事实并非如此。对于此特定员工,Employee和EmployeeMaster也是如此。
我从哪里开始寻找问题?