我有一个查询,试图获取总和值,但是我得到了InvalidCastException。
我的查询是:
SELECT e.clockNr,e.firstName,e.LastName,e.unionName,i.points
FROM (
SELECT employee.clockNr AS clockNr,
employee.firstName AS firstName,
employee.lastName AS lastName,
Unions.name AS unionName
FROM employee,Unions
WHERE employee.active=1 AND employee.unionId = unions.id
GROUP BY employee.clockNr
) e LEFT JOIN (
SELECT infraction.clockNr AS clockNr,
CAST(SUM(Infraction.points) AS SIGNED) AS points
FROM infraction
WHERE infraction.infractionDate >=@startDate
AND infraction.infractionDate <=@endDate
GROUP BY infraction.clockNr
) i ON e.clockNr = i.clockNr
ORDER BY e.clockNr ASC
问题出在“points”列上。 我已经将CAST添加到SIGNED,但这并没有帮助。
我读取该列的方式是:
int iGetPoints = Convert.ToInt32(reportReader["points"]);
也尝试了以下方法:
int iGetPoints = (int)reportReader["points"];
但是两者都引发了InvalidCastException异常。 该查询在PHPMyAdmin中进行了测试,并且在那里运行良好。
有没有人能看出我做错了什么,或者给我提示应该往哪里查找?
points
列的数据类型是什么? - Sriram Sakthivel