나는 HSQLDB를 사용하는 JAVA 응용 프로그램을 가지고 있습니다. 'marks'라는 테이블이 있는데 'mark'라는 정수 열이 들어 있습니다. HSQLDB DatabaseManager를 사용하여 다음 쿼리를 실행하는 경우 : SELECT AVG (CAST (FLOAT로 표시)), SUM (표시) FROM where where = 5 및 suid = 8 DBM은 올바른 값을 반환합니다. 1.5 및 3; 마크 1과 2에 대해.Prepared Statement가 잘못된 값을 반환합니다.
같은 쿼리로이 데이터를 읽으려면 다음과 같이 JAVA 코드를 사용하면 java가 항상 2를 출력합니다. 평균과 합계. 내가 뭘 잘못하고 있는지 전혀 모르겠다. 어쩌면 당신이 나를 도울 수 있습니다.
double avg = 0;
PreparedStatement stmt = dbcn.prepareStatement("SELECT AVG(CAST(mark as FLOAT)), SUM(mark) FROM marks WHERE sid=? AND suid=?");
stmt.setInt(1, 5);
stmt.setInt(2, 8);
ResultSet gARS = stmt.executeQuery();
while(gARS.next()){
avg = gARS.getDouble(1);
System.out.println(gARS.getInt(2));
}
return avg;
빠른 답변 감사드립니다. 나는 당신의 제안을 시도했지만 여전히 반올림합니다. 나는 2x mark 1과 1 x mark 2로 시도했는데, 이제는 1이라고 말하고있다./ –
Ahh, 나는 가능한 오류, 소수 자릿수가 반올림 된 형식을 보여주고 싶었다. 1.333에 대해 1이 발생했습니다. –
알았어, 그게 다야. 대단히 감사합니다. –