使用java从sql表中选择最大日期

时间:2017-09-17 15:01:42

标签: sql sqlite greatest-n-per-group

try {

    String sql = "SELECT MAX(date),empNo,basicAmt,increment FROM Basic_sal where empNo=?";
    pst = conn.prepareStatement(sql);
    String empNO = com_emp.getSelectedItem().toString();
    pst.setString(1, empNO);
    rs = pst.executeQuery();

    if (rs.next()) {
        //JOptionPane.showMessageDialog(null,"Success !!!" );
        float a = rs.getFloat("basicAmt");
        String b = Float.toString(a);
        txt_basicsalary.setText(b);

我在Netbeans中使用此代码部分从我的基本工资表中获取最大日期。但是输出给出了最近添加的记录的日期,但实际上我想要的是根据empNo的最大日期。但查询提供了SQLiteManager中的最大日期。如果有人可以尽快提供答案,将不胜感激。我正在使用SQLiteManager。

@ Mureinik .....是的我需要代码中的所有字段

1 个答案:

答案 0 :(得分:0)

您希望为每位员工选择具有该员工最大(日期)的记录。要做到这一点,最好使用相关的子查询(无论RDBMS ......可能有一些例外)

 SELECT date,empNo,basicAmt,increment FROM Basic_sal bs where empNo=? AND date = (SELECT max(date) FROM basic_sal WHERE empNo = bs.empNo);

此子查询正在获取该特定记录的员工的最大日期,并将其用作WHERE子句中的过滤器。