0

クラス用に amazon というプロジェクト データベースを作成しました。このレポートでは、最も売れた製品から最後に販売された製品までを表示したいと考えています。最も売れた製品を取得し、それらを購入したすべての顧客を表示し、その製品の電子メールと購入量を表示したいと考えています。よし、売れ筋商品をまとめて表示できます。そして、最初の行を取得する方法を知っています (2 つ以上の製品の販売数が同じ場合は問題が発生します) が、作成中に結果セットから最初のテーブルからタイトルを取得することはできません。他のクエリ:/この問題を解決するのを手伝ってくれる人はいますか?

void report2 (Connection conn) 
        throws SQLException, IOException {

String query0 = "select title, SUM (quantityb) AS total from product,buy where id = idb group by title order by total DESC";


String title,title2,name,email,t;
int quan,quanp;

Statement stmt = conn.createStatement (); 
ResultSet rset0;

System.out.print("\n\n************************************MOST POPULAR PRODUCTS************************************\n");

System.out.print("         TITLE OF THE PRODUCT                                                TOTAL PURCHASED\n"+
         "--------------------------------------------                            -------------------------\n");



try {
rset0 = stmt.executeQuery(query0);
   } catch (SQLException e) {
    System.out.println("Problem reading purchases");
    while (e != null) {
    System.out.println("Message     : " + e.getMessage());
    e = e.getNextException();
    }
    return;
}
while (rset0.next())
{

    title = rset0.getString(1);
    quan = rset0.getInt(2);


    System.out.printf("%-108s   %-3d \n ",title,quan);
}



PreparedStatement statement = conn.prepareStatement(query0);
statement.setMaxRows(1);
ResultSet rset1 = statement.executeQuery();
while (rset0.next())
{

  title2= rset1.getString(1);

}


   String query2 = "select  
   String query1 = "Select fname,email,quantityb"+
                  "from custumer,product,buy"+
                  "where email = emailb"+
                  "and id = idb"+
                  "and title ='"+title2+"'";



System.out.print("..............................Who Purchased the most popular product.............................\n");

System.out.print("PRODUCT:"+title2+"\n\n");
System.out.print("     FIRST NAME                      EMAIL                 QUANTITY\n"+
         "---------------------    -----------------------------  ------------------\n");

ResultSet rset2;

try {
rset2= stmt.executeQuery(query1);

} catch (SQLException e) {
    System.out.println("Problem reading people");
    while (e != null) {
    System.out.println("Message     : " + e.getMessage());
    e = e.getNextException();
    }
    return;
}

while (rset2.next())
{

   name=rset2.getString(1);
   email=rset2.getString(2);
   quanp=rset2.getInt(3);


    System.out.printf("%-8s \t\t\t%-25s\t\t\t %3d \n ",name,email,quanp);
}




stmt.close();
}

結果

commerce.java:405: 変数 title2 が初期化されていない可能性があります "and title ='"+title2+"'"; ^ 1 エラー

4

1 に答える 1

0

これは宿題か練習のようです。

variable title2 might not have been initialized  

を含む文字列変数を初期化していないためです。title2

変化する

String title,title2,name,email,t;

String title="", title2="", name="", email="", t="";.

2番、

String query2 = "select  

これは不完全であり、引用符とセミコロンで終わる何か意味のある値でなければなりません。

お気に入りString query2 = "select * from tblName";

補足として
、質問には常に完全なエラースタックを提供してください。

于 2012-11-29T10:09:24.903 に答える