1

私は自分のデータを表示することになっているウィケットに取り組んでいます

<tr>
   <td>Name</td>
   <td>Single Player Score</td>
   <td>Double Player Score</td>
   <td>Total Score</td>
</tr>
<tr wicket:id="data">
   <td wicket:id="name"></td>
   <td wicket:id="singlePlayerScore"></td>
   <td wicket:id="doublePlayerScore"></td>
   <td wicket:id="totalScore"></td>
</tr>

私のPlayerモデルクラスは次のとおりです。属性singlePlayerScore、doublePlayerScore()、ゲッターとセッターを含む名前、およびデータベースから取得したリストデータを持つプレーヤークラス。

SQLQuery からのデータは次のとおりです。

name        score    gamemode
  A           200       singlePlayerMode 
  A           100       doublePLayerMode
  B           400       singlePlayerMode 
  B           300       doublePLayerMode
dataList == player.getScoreList();

私の PageableListView は次のとおりです。

     final PageableListView listView = new PageableListView("data",dataList,10){
@Override
protected void populateItem(Item item){
    player = (Player)item.getModelObject();
    item.add(Label("name",player.getName()));
    item.add(Label("singlePlayerScore",player.getName()));
    item.add(Label("doublePlayerScore",player.getName()));
    item.add(Label("totalScore",String.valueOf(player.getSinglePlayerScore()+player.getDoublePlayerScore())));
  }
}

私の問題は次のとおりです:私が得るビューは次のとおりです:

Name         single Player Score               Double Player Score       Total Score
A              0                                  100                      100
A              200                                 0                       200
B              0                                   300                     300
B              400                                  0                      400

私のウェブページで以下のビューを実現するにはどうすればよいですか?

 Name         single Player Score               Double Player Score       Total Score
    A              200                                  100                     300
    B              400                                  300                     700

なぜこれが起こっているのか教えてください。私のリストのサイズは4だと思いますが、それがビューをレンダリングしている理由の1つですか? では、必要なレンダリング ビューを取得するにはどうすればよいでしょうか。

4

1 に答える 1

1

SQL クエリを次のように編集する必要があります。

SELECT 
    name, 
    sum(singleplayerscore), 
    sum(doubleplayerscore), 
    (sum(singleplayerscore) + sum(doubleplayerscore)) AS totalscore 
FROM `scorelist` GROUP BY name

このようにして、各プレーヤー (列名) のスコアが合計され、合計スコアを含む追加の列 totalscore が作成されます。

于 2011-11-20T12:17:44.430 に答える