合計値を取得しようとするクエリがありますが、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
それがうまくいかないのは「ポイント」列です。CAST を SIGNED に追加しましたが、これは役に立ちません。
私がコラムを読む方法は次のとおりです。
int iGetPoints = Convert.ToInt32(reportReader["points"]);
また試しました:
int iGetPoints = (int)reportReader["points"];
しかし、どちらも InvalidCastException を発生させます。クエリは PHPMyAdmin でテストされ、そこで正常に動作します。
誰かが私が間違っていることを確認したり、どこを探すべきかヒントを教えてくれますか?