lingting1995 于 2015.07.20 15:36 提问

3个回答

danielinbiti      2015.07.20 16:05

`````` class Record{
private String dateStr = "";
private String schoolName = "";
private int money = 0;
public Record(String dateStr,String schoolName,int money){
this.dateStr = dateStr;
this.schoolName = schoolName;
this.money = money;
}
public String getYear() {
return dateStr.split("-")[0];
}
public String getSchoolName() {
return schoolName;
}
public int getMoney() {
return money;
}

}
public class Test {
public List<Record> init(){
List<Record> list = new ArrayList();
return list;
}
public HashMap<String,HashMap<String,Integer>> tongJi(List<Record> list){
HashMap<String,HashMap<String,Integer>> rstMap = new HashMap();
for(int i=0;i<list.size();i++){
Record rd = list.get(i);
if(rstMap.get(rd.getYear())==null){
rstMap.put(rd.getYear(),new HashMap());
}
HashMap<String,Integer> schoolMap= rstMap.get(rd.getYear());
if(schoolMap.get(rd.getSchoolName())==null){
schoolMap.put(rd.getSchoolName(),0);
}
Integer value = schoolMap.get(rd.getSchoolName());
value = value + rd.getMoney();
schoolMap.put(rd.getSchoolName(),value);
}
return rstMap;
}
public void print(HashMap<String,HashMap<String,Integer>> rstMap){
Iterator  iter1 = rstMap.keySet().iterator();
while(iter1.hasNext()){
String year = (String)iter1.next();
HashMap<String,Integer> schoolMap= rstMap.get(year);
Iterator iter2 = schoolMap.keySet().iterator();
while(iter2.hasNext()){
String schoolName = (String)iter2.next();
int value = schoolMap.get(schoolName);
System.out.println("year="+year+",school="+schoolName + ",金额="+value);
}
}
}

/**
* @param args
*/
public static void main(String[] args) {
Test t = new  Test();
List<Record> list = t.init();
HashMap map = t.tongJi(list);//统计
t.print(map);
}

}
``````
danielinbiti 回复lingting1995: 如果有帮助，有时间顺手采纳一下吧

lingting1995 很感谢，有这个平台真好！

lingting1995 很感谢，有这个平台真好！

danielinbiti      2015.07.20 15:38
`````` select sum(资产金额) from 表 group by 学校名称,年份(日期取年，数据库都有对应的函数)
``````
lingting1995 回复danielinbiti: 嗯嗯

danielinbiti 回复lingting1995: 。。。。好吧，那就不是数据库，是list数据吧

lingting1995 回复danielinbiti: 那个，要怎么从一个List里面取，那些数据好像是存在一个List对象里面的？，谢

danielinbiti 回复lingting1995: 时间字段 取年，对应数据库都有相应的函数

lingting1995 谢谢，那个日期取年！！！

notfindjob   2015.07.25 17:58

sql中的sum(字段名)就能实现这个功能

Java根据年份算出所属的生肖。

SQL按年份月份统计数据
SQL按年份月份统计数据，使用了MySQL获取日期的指定值的函数EXTRACT(Type FROM Datetime)
shell脚本统计信息插到数据库中去
MYSQL_BIN="/usrl/local/mysql/bin/mysql" SQL_FILE="/root/sql/shop_sql" getids = `\$MYSQL_BIN -u root -pming update_sql="update shop.sys_cache set cache_value='\$getids'" where cache_key='prodsale';
Excel VBA 根据日期汇总统计另一字段非重复值的个数
Sub lqxs() Dim Arr, i&, x, y, z Dim d, k, t Set d = CreateObject("Scripting.Dictionary") Set s = CreateObject("Scripting.Dictionary") Sheet1.Activate [f:g].ClearContents Arr = [a1].CurrentRegio
C#中如何给GridView添加页脚以实现统计某一列值的和

js动态计算table某列值的总和
/**   *    * @tableId 表格id   * @numId 显示张数id   * @index 列数   * @first 首次标识   * @obj checkbox对象   */  function countNum(tableId, numId, index, first,obj) {       var sumStr = document.getElementById(numId);       //当前行进行加减       if (null != obj) {
Oracle根据年份提取出年月日并分组
select extract(year from 时间字段 ) year from 表名 GROUP BY extract(year from 时间字段 ) 解释：extract(year from 时间字段) 获取相应的年份 得到的结果为数值类型的。year也可以换成month和day获取月和日           GROUP BY extract(year from 时间字
Oracle 统计某一年中的1-12个月的数据总和（非常实用）
Oracle 统计某一年中的1-12个月的数据总和（非常实用）