【问题标题】:Select the maximum date from sql table using java使用java从sql表中选择最大日期
【发布时间】:2018-02-26 15:44:09
【问题描述】:
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 .....是的,我需要代码中的所有字段

【问题讨论】:

  • 您是否正在针对 SQLite 运行此代码?如果没有,您使用的是什么 RDBMS?
  • 你在用什么rdbms。另外 - 您真的需要所有这些字段,还是只需要 empno 和最大日期?

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


【解决方案1】:

您希望为每个员工选择具有该员工最大(日期)的记录。要做到这一点,最好使用相关子查询(不管 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 子句中的过滤器。

【讨论】:

    猜你喜欢
    • 2018-11-18
    • 2014-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多