Java 및 SQL 라이브러리를 사용하여 Oracle 데이터베이스로 작업하고 있습니다. 저는 평균이 평균에서 표준 편차만큼 떨어진 학생들을 계산하려고합니다. 그 학생들에게 깃발을 달기위한 칼럼을 추가하고 얼마나 많은 학생들이 기준을 충족시키고 새로운 테이블에 추가하는지 계산합니다. "allAvgs"변수와 "theSD"변수를 "변수로 해석 할 수 없습니다"라는 오류가 나타납니다. if 문에서 오류가 발생하지만 이미 해당 변수를 인스턴스화했습니다. 이 오류가 발생하는 이유는 무엇입니까? 어떤 도움을 주셔서 감사합니다. 그들은 while(){...}
루프 내에 선언하고 while()
루프의 블록 영역에 한정되기 때문에변수로 해결할 수 없음 - JDBC
try{
Statement stOne, stTwo, stThree, stFour;
String SelectAverage = "SELECT MEAN FROM STUDENTS";
ResultSet rsOne = stOne.executeQuery(SelectAverage);
String TotalAverage = "SELECT Avg(MEAN) AS averages FROM STUDENTS";
ResultSet rsTwo = stTwo.executeQuery(TotalAverage);
String student_stan_dev = "SELECT STDEV(MEAN) AS standardDeviation FROM STUDENTS";
ResultSet rsThree = stThree.executeQuery(student_stan_dev);
int onesdMean = 1;
//Loop Duration_Sec column
while(rsOne.next()){
//Convert values into float values
float allAvgs = rsOne.getFloat("MEAN");
float totalAvg = rsTwo.getFloat("averages");
float StDev = rsThree.getFloat("standardDeviation");
float theSD = allAvgs - (onesdMean * StDev);
}
String flaggedStudents = "ALTER TABLE STUDENTS ADD FlaggedStudents INT";
ResultSet rsFour = stFour.executeUpdate(flaggedStudents);
if(allAvgs >= theSD){
String FlagHint = "INSERT INTO STUDENTS.FlaggedStudents VALUES('1')";
st.executeUpdate(FlagHint);
}
String countInstances = "SELECT STUDENTS.NAME, STUDENTS.FlaggedStudents" +
"COUNT(*)OVER(PARTITION BY STUDENTS) AS cnt FROM STUDENTS";
st.executeQuery(countInstances);
st.executeUpdate("CREATE TABLE IF NOT EXISTS StudentCount" +
"(NAME INT , cnt INT)");
String insertVals = String.format("INSERT INTO StudentCount" +
"(NAME , cnt INT") +
" VALUES ('%s','%s')");
st.execute(insertVals);enter code here
'theSD'를 선언 한 블록 외부에서 사용할 수 없습니다. 범위를 벗어났습니다. –
둘 다 내 질문에 답변 해 주셔서 감사합니다. 도와 주셔서 감사합니다. – user2554121