这个问题想了半天也没有想到一个好的解决方法,所以拿出来和大家探讨探讨,集思广益,看大伙都有什么好的见意。
问题是这样,有这样一组数据:表 A
id codetype money
1 A 20
2 A 12
3 A 30
4 B 2
5 C 20
6 C 10
7 D 20
. . .
. . .
. . .
在不知道codetype是什么值类型的情况下(就是说A、B、C、D可以是任何代码类型,在不知道代码类型的情况下,按代码类型输出各代码类型的money数),用程序实现分别计算出所谓类型A、B、C、D的money总和。输出 A类型:62,B类型:2,C类型:30,D类型:20。
如果知道的高手们,最好是用java代码简单展示下思路。略散小分,以感谢拔刀相助的兄弟们........
问题是这样,有这样一组数据:表 A
id codetype money
1 A 20
2 A 12
3 A 30
4 B 2
5 C 20
6 C 10
7 D 20
. . .
. . .
. . .
在不知道codetype是什么值类型的情况下(就是说A、B、C、D可以是任何代码类型,在不知道代码类型的情况下,按代码类型输出各代码类型的money数),用程序实现分别计算出所谓类型A、B、C、D的money总和。输出 A类型:62,B类型:2,C类型:30,D类型:20。
如果知道的高手们,最好是用java代码简单展示下思路。略散小分,以感谢拔刀相助的兄弟们........
如果是存在文本文件里的话,直接读入,使用map处理即可了.
可能就是读数据比较麻烦.
1 A 10
1 A 30
1 B 50
1 C 20
1 C 20
1 C 10
1 D 30
2 A 30
2 B 10
2 B 10
2 C 40在知道num的值,不知道codetype的值的情况下,按codetype来分组计算出money。
输出:A: 70, B: 70, C: 90 ,D: 30
我写了一点试试结果是错误的 只是我的sql句子能力不到 你请教下sql高手 应该能解决
然后更具array里的codetype 找出每个codetype 对于的value之和。
B :34,34
C: 31,2
....
l = 查询结果;
MoneyObj testObj = (MoneyObj)l.get(0);
String test = testObj.getCodetype();
Double money = new Double(0);
for(int i=0; i<l.size(); i++) {
MoneyObj obj = (MoneyObj)l.get(i);
if (test.equals(obj.getCodetype())) {
money += obj.getMoney();
} else {
System.out.println(test+":"+money);
test = obj.getCodetype();
money = obj.getMoney();
}
}
//输出最后一个
System.out.println(test+":"+money);