0

我想获得日期相同的列的总和。

日期 费用
2012 年 3 月 8 日 200
2012 年 3 月 8 日 400
2012 年 4 月 8 日 300
2012 年 4 月 8 日 100

<%stat=con.createStatement();
rs=stat.executeQuery("select * from pat.dbo.PHPL"); 
while(rs.next())
{
date=rs.getString("Date");
charges=rs.getString("Charges");%>
<table>

<tr>
<td><%=date%></td>
<td><%=charges%></td>
<%}%>
</tr></table>

想要这个结果:

收费日期2012 年 3 月 8 日
600
2012 年 4 月 8 日 400

我希望这与 jsp 不在 sql 查询中。当我在数据库中将费用的数据类型设置为字符串时。所以查询中不可能 sum 。谢谢。

4

2 回答 2

0

您没有提供有关您正在使用的 dbms 的任何信息,但是根据您的原始查询,我假设您使用的是 Microsoft 的 sqlserver。

所以,你可以写:

按日期从 pat.dbo.PHPL 组中选择日期,sum(cast(charges as float))。请参阅此链接:

http://msdn.microsoft.com/en-us/library/aa226054%28v=sql.80%29

于 2012-08-03T07:46:35.417 回答
0

我更喜欢 José Esteves-Pereira 通过转换的解决方案,但你可以试试这个 utnested 代码:

<%stat=con.createStatement();
rs=stat.executeQuery("select * from pat.dbo.PHPL");
actDate
while(rs.next())
{
  date = rs.getString("Date");
  if (actDate != date)
  {
    actDate = date;
    charges = rs.getString("Charges");
  }
  else
  {
    charges += rs.getString("Charges");
  }
%>
<table>

<tr>
<td><%=actDate %></td>
<td><%=charges%></td>
<%}%>
</tr>
</table>
于 2012-08-03T07:59:53.077 回答