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() 的 Player 类、带有 getter 和 setter 的名称以及从数据库获取的列表数据。

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 回答 1

1

您必须将 SQL 查询编辑为如下内容:

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

这样,每个玩家的得分(列名)相加,并创建一个额外的列,即总得分和总得分。

于 2011-11-20T12:17:44.430 回答