0

几天以来遇到一个奇怪的问题,这使我无法运行任何查询。

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 做了同样的事情。

我从哪里开始寻找问题?

4

0 回答 0