Java 在resultset中循环以搜索不同表上的另一个值
我想在结果表中搜索一些特定的结果,使用不同表中的id根据从studentInfo表中选择的学生id计算cgpa,下面是我尝试的,问题是它只计算第一个id,或者更确切地说是学生idJava 在resultset中循环以搜索不同表上的另一个值,java,sql,jdbc,Java,Sql,Jdbc,我想在结果表中搜索一些特定的结果,使用不同表中的id根据从studentInfo表中选择的学生id计算cgpa,下面是我尝试的,问题是它只计算第一个id,或者更确切地说是学生id String lev = levelCombo.getSelectedItem().toString(); int leve = Integer.parseInt(lev); int le = leve / 100; try { String sql
String lev = levelCombo.getSelectedItem().toString();
int leve = Integer.parseInt(lev);
int le = leve / 100;
try {
String sql
= "select idNumber from studentInfo where level ='" + lev + "' ";
pst = conn.prepareStatement(sql);
rs = pst.executeQuery();
while (rs.next()) {
String idNumb = rs.getString("idNumber");
cgpa(idNumb, le);
System.out.print("" + idNumb);
}
} catch (Exception e) {
}
}
public void cgpa(String idnumber, int level) {
float units = 0;
float ugps = 0;
float cgp = 0;
for (int i = 1; i <= level; i++) {
try {
String sql = "select sum(UNIT) ,sum(UGP) ,round(sum(UGP) / NULLIF(sum(UNIT), 0), 2) from Results where ID_NUMBER = ? and level ='" + i + "' ";
pst = conn.prepareStatement(sql);
pst.setString(1, idnumber);
rs = pst.executeQuery();
while (rs.next()) {
Float un = rs.getFloat("sum(UNIT)");
Float gp = rs.getFloat("sum(UGP)");
// Float sum=rs.getFloat("round(sum(UGP)/NULLIF(sum(UNIT), 0),2)");
units += un;
ugps += gp;
cgp = ugps / units;
String sql1 = "update academicstatus set cgpa ='" + cgp + "' ,product='" + ugps
+ "',unit='" + units + "' where idnumber = ? ";
updateAcademicstatus(cgp, ugps, units, idnumber);
pst = conn.prepareStatement(sql1);
pst.setString(1, idnumber);
pst.executeUpdate();
}
} catch (Exception ex) {
ex.printStackTrace();
} finally {
try {
rs.close();
pst.close();
} catch (Exception e) {
}
}
}
}
String lev=levelCombo.getSelectedItem().toString();
int-leve=Integer.parseInt(lev);
int-le=leve/100;
试一试{
字符串sql
=“从studentInfo中选择idNumber,其中级别='”+lev+“'”;
pst=conn.prepareStatement(sql);
rs=pst.executeQuery();
while(rs.next()){
字符串idNumb=rs.getString(“idNumber”);
cgpa(idNumb,le);
系统输出打印(“+idNumb”);
}
}捕获(例外e){
}
}
公共无效cgpa(字符串idnumber,整数级){
浮动单位=0;
浮动ugps=0;
浮动cgp=0;
对于(inti=1;i,您是否正在尝试进行单个查询
select sum(UNIT),sum(UGP),round(sum(UGP)/ ULLIF(sum(UNIT),0),2)idNumber from studentInfo sinfo
join Results re on re.ID_NUMBER = sinfo.idNumber where level='"+lev+"'"
您的问题是什么,您的程序有很多问题您检查了第一个方法的}
了吗?尝试使用}catch(Exception ex){ex.printStackTrace();}
并向我们展示您的问题?抱歉},我刚才用手机上传了一个问题我的电脑关机了,问题是它只使用第一个方法中列的第一个值来搜索结果,但我希望它搜索整个列的值