1

データベースの一部の値を取得する際に、システムに問題があります。特定のフィールドの値の概要を取得したいと考えています。これは値を取得する私のコードです:

public void insertToClientSummary(){
    sql = "SELECT COUNT(genClientID), SUM(principal), SUM(interest), SUM(totalPayment), SUM(totalBal) FROM client_info";
    try {
        stmt = conn.prepareStatement(sql);
        rs = stmt.executeQuery();
        String titles[] = new String [4];
        titles[0] = "Total Clients";
        titles[1] = "Total Loan Book";
        titles[2] = "Total Interests";
        titles[3] = "Total Payment";
        titles[4] = "Total Balance";
        rs.next();
        for (int ctr=0;ctr<=5;ctr++){
            String sql2 = "INSERT INTO client_summary (title, sumValues) VALUES ('"+titles[ctr]+"','')";
            PreparedStatement stmt2 = conn.prepareStatement(sql2);
            stmt2.executeUpdate();
            ctr++;
            sql = "UPDATE client_summary SET sumValues = '"+String.valueOf(rs.getDouble(ctr))+"'";
            stmt = conn.prepareStatement(sql);
            stmt.executeUpdate();
            ctr--;
        }
    }
    catch(Exception e){
        JOptionPane.showMessageDialog(null, "Client Summary Query Exception");
    }
}

ちなみに、上記のclient_summaryテーブルに新しい値を挿入するためのコードも含めました。しかし、最初のクエリで例外が発生したと思います。データの適切な取得のアイデアはありますか?

4

3 に答える 3

3

as name(エイリアス) を使用して取得できます。例

SELECT COUNT(genClientID) as cnt, .........

それで

   rs.getString("cnt");
于 2013-01-22T04:29:42.160 に答える
1

集計値を集計テーブルに挿入するだけの場合は、insert select を使用できます。そうすれば、結果セットの反復は必要ありません。例えば

INSERT INTO summary(id,total,max) SELECT count(id),sum(principal),sum(interest) FROM client_info
于 2013-01-22T05:18:56.380 に答える