0

sqlite クエリ結果のサブクエリに問題があります。以下のクエリを実行すると、Sqlite データベースに結果が正常に返されますが、プログラムを実行すると値が返されません。以下のプログラムで私が間違っていること。ご意見をお聞かせください。

クエリ:

select * from (SELECT count(*), col2,col9,col4 FROM tbl_data_1  WHERE col4=6  AND col3 BETWEEN '2012-11-21' AND '2013-04-19' GROUP BY col2,col9,col4) as inr_qry where col2= '20016' and col9='3'

Java でのプログラム:

Vector<Vector> dataList = new Vector();
for (int i =0; i < listRows.size(); i++){
    Vector cols = new Vector();             
    cols.add(listRows.get(i));
    for (int j = 1; j < listColumns.size(); j++){
        // below query will be dynamic
        String inner_query = "select * from (SELECT count(*), col2,col9,col4 FROM tbl_data_1  WHERE col4=6  AND col3 BETWEEN '2012-11-21'               AND '2013-04-19' GROUP BY col2,col9,col4) as inr_qry where col2= '20016' and col9='3'";

        PreparedStatement data_st = database.getConnection().prepareStatement(inner_query);
        ResultSet data_rs = data_st.executeQuery();
        while (data_rs.next())  { // result not successful, result set not having records
            SLogger.printD("data_rs.getString(1): " +data_rs.getString(1));
            cols.add(data_rs.getString(1));
        }
    }
    dataList.add(cols);
}
4

2 に答える 2

1

必要ありませんPreparedStatement。代わりにこれを使用します:

Statement stmt = database.getConnection().createStatement();
于 2013-04-19T07:25:00.570 に答える
0

奇妙に聞こえますが、int が期待されるので、使用してみてください

getInt(1)

それ以外の

getString(1)
于 2013-04-19T07:23:15.920 に答える