以下代码的目的是根据给定的薪水评估税收累计," converted_basic_pay"。对于除最后一行之外的所有值,似乎工作正常,对于任何大于15001的工资,它具有空值。但是,出于测试目的,我将converted_basic_pay的值设置为20000,但它仍然返回null而不是最高税率。这是sql中的税表:
float taxPercentage = 0;
PreparedStatement ps6 = con.prepareStatement("SELECT TaxPercentage from payroll_system.tax_info WHERE ? BETWEEN FromSalary and ToSalary");
ps6.setInt(1, converted_basic_pay);
ResultSet rx = ps6.executeQuery();
if (rx.next()){
PreparedStatement ps7 = con.prepareStatement("SELECT MAX(TaxPercentage) as maxTax, MAX(FromSalary) as maxFrom from payroll_system.tax_info");
ResultSet rx1 = ps7.executeQuery();
if(rx1.next()){
float maxTax = rx1.getFloat("maxTax");
float maxFrom = rx1.getFloat("maxFrom");
if(converted_basic_pay>maxFrom){
taxPercentage = maxTax;
}
else{
taxPercentage =rx.getFloat("TaxPercentage");
}
out.println(taxPercentage);
}
}
}
converted_basic_pay的值是20000.为什么最后一行out.println(taxPercentage)
返回空值而不是45.00?