我看你的思路太乱了你把数据库和应用程序搞在一起了表头要用你的应用程序去实现。年龄分三段去查询。
select sum(FGrade) from TABLE1 where FAge<=15
select sum(FGrade) from TABLE1 where FAge>16 and FAge<17
select sum(FGrade) from TABLE1 where FAge>=18
select sum(FGrade) from TABLE1 where FAge<=15
select sum(FGrade) from TABLE1 where FAge>16 and FAge<17
select sum(FGrade) from TABLE1 where FAge>=18
解决方案 »
- DUMP文件的导入问题
- ado 如何取完整的命令串
- 请教:在win2003上安装oracle11g,执行setup.exe,闪一下就退出
- 在编译proc是出现Error 172: "szg.cpp", line 265 # Undeclared variable 'oraca'.请问是怎么解决
- 请问怎样在单机上为同一个数据库启动多个实例?
- 高分求:Oracle新手面临的难题.如何取得最近更新记录.
- 为什么lsnrctl启动不了,在sqlplus下不提供主机服务名可以连接到数据库
- Oracle中执行procedure慢!oracle参数该怎么设?
- Oracle为什么数据更新比较慢?
- oracle11g,3张表内关联查询,半个小时没反应,什么原因呢?
- 救命呀,我的无法安装oracle9i?
- oracle client 安装的问题
select sum(FGrade),count(*) from TABLE1 where FAge>16 and FAge<17 goup byFClass
select sum(FGrade),count(*) from TABLE1 where FAge>=18 goup byFClass
而且不是分三个sql,有可能分多个(动态的)
我觉得可能是要查询多个子表后连接起来,但不知道如何实现
select FClass,sum(FGrade) gsum,count(*) counter from TABLE1
where FAge<=15 goup by FClass a,
select FClass,sum(FGrade) sgum,count(*) counter from TABLE1
where FAge>16 and FAge<17 goup by FClass b,
select FClass,sum(FGrade) gsum,count(*) counter from TABLE1
where FAge>=18 goup by FClass c
where a.FClass=b.FClass and b.FClass=c.FCladd
--如果动态选择,使用存储过程,把数据放入一个新表中
create or replace procedure p_count(startage in number(2),
endage in number(2))
is
begin
insert into new table as
select FClass ,count(fname),sum( fgrade)
from TABLE1
where fage between :startage and :endage group by FClass;
end