现有一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”语句。
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”语句。
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()函数就可以了
结贴的时候我会送出分数的
还有其他的办法吗?请帮下忙