现有一SQLServer数据库,名为qian,库里有一名为yuan的表,如下:
   
COL1 COL2
A1 98
A2 64
A3 22
B1 137
B2 45
B3 67第一行为列名,COL1为VACHER型,COL2为INT型,用JAVA语言按以下要求写程序。
1. 直接连接数据库。
2. 查询数据库,并按COL1的首字符对COL2做合计,并打印到屏幕上。
3. 查询数据库,并按COL1的第二符对COL2做合计,并打印到屏幕上。
4. 两次查询时都不能使用“sum”和“group”语句。

解决方案 »

  1.   

    首先是得到COL1第一个字符的所有结果:
    sql="select substr(COL1,1,1) from yuan";//查询语句
    resultSet = conn.createStatement().execute(sql);//执行查询COL1的第一个字符
    HashSet hs = new HashSet();
    while(resultSet.next())
    {
        hs.add(resultSet.getString(1));//将COL1的第一个字符取出来,用set可以保证不会重复
    }
    Iterator it = hs.iterator();
    sql2 = "select COL2 from yuan where substr(COL1,1,1)=?";
    prepareStatement pstat = conn.prepareStatement(sql2);
    ResultSet rs2=null;
    while(it.hasNext() )//遍历COL1的第一个字符,一个一个的去求和
    {
      String st = (String)it.next();    
      rs = pstat.setString(1,st).executeQuery();//得到COL2的结果集
      int sum = 0;
      while(rs.next())
      {
       sum+=rs.getInt(1);//取出来求和
      }
      System.out.println(st+"\t\t" + sum);//打印结果
    }
    至于第二个问题跟这个问题是差不多的,只要换一下那个substr()函数就可以了
      

  2.   

    谢谢AWUSOFT() 
    结贴的时候我会送出分数的
    还有其他的办法吗?请帮下忙