2017-09-17 2 views
0
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 @Javaを使用してSQLテーブルから最大日付を選択

.....はい、私はあなたがその従業員の最大(日)は、各従業員のレコードを選択するコード内のすべてのフィールド

+0

このコードをSQLiteに対して実行していますか?そうでない場合は、どのRDBMSを使用していますか? –

+1

あなたはどの[タグ:rdbms]を使用していますか?また、あなたは本当にこれらすべてのフィールドを必要としますか、あるいは単にempnoと最大の日付を必要としますか? – Mureinik

答えて

0

を必要としています。ここで

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

は、そのサブクエリは、その特定のレコードの従業員のための最大の日付をつかんで使用している(おそらくいくつかの例外を除いて...かかわらず、RDBMSの)相関サブクエリを使用して離れてあなたの最高のことを行うために、そのようWHERE句のフィルタ

関連する問題