这个问题想了半天也没有想到一个好的解决方法,所以拿出来和大家探讨探讨,集思广益,看大伙都有什么好的见意。
   问题是这样,有这样一组数据:表 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代码简单展示下思路。略散小分,以感谢拔刀相助的兄弟们........

解决方案 »

  1.   

    无所谓拉,就是按它分组计算分别计算出money的值
      

  2.   

    这样的表示如何保存的? 
    如果是存在文本文件里的话,直接读入,使用map处理即可了.
    可能就是读数据比较麻烦.
      

  3.   

    错了,表A,应该是这样的: num   codetyp   money
     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    
      
      

  4.   

    select sum(money) from A group by codetype
      

  5.   

    用拼装SQL 句子的思想应该能解决
    我写了一点试试结果是错误的  只是我的sql句子能力不到   你请教下sql高手  应该能解决 
      

  6.   

    楼上的只能分一组啊   能把他所有的A,B,C,D  都写进来吗?
      

  7.   

    我刚试了下啊  楼上的做法是可以的  完了 遍历下list  就能取出所有的对应的每条数据了!谢谢   原来是这么简单啊  我给想复杂了  呵呵!学习!
      

  8.   

    我刚试了下啊  楼上的做法是可以的  完了 遍历下list  就能取出所有的对应的每条数据了!谢谢   原来是这么简单啊  我给想复杂了  呵呵!学习!
      

  9.   

    我刚试了下啊  楼上的做法是可以的  完了 遍历下list  就能取出所有的对应的每条数据了!谢谢   原来是这么简单啊  我给想复杂了  呵呵!学习!
      

  10.   

    这个用sql的话是很简单,但是这样会新增加一个sql的方法,,如果是select *from A order by codetype 查出来的结果,用程序语言怎样实现按codetyp分组显示money的值????
      

  11.   

    可以用程序实现的 , 先找出codeType 有多少种, 放到一个array 里 。 
    然后更具array里的codetype 找出每个codetype 对于的value之和。
      

  12.   

    发个你想要的显示结果 我们看看 是这样吗? A :20,10
              B :34,34
             C: 31,2
         ....
      

  13.   

    结果是这样的:A: 70, B: 70, C: 90 ,D: 30  
      

  14.   

                    List l = new ArrayList();
                    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);