数据库中查到一组数据,然后每三行相加求和得出新的一行,
如表名table数据ab122233344411566677查询后显示应该是ab3996154求助中,在线等啊...
如 表名 table
数据 a b
1 22
2 33
3 44
4 11
5 66
6 77
查询后显示应该是 a b
3 99
6 154
求助中,在线等啊 展开
数据 a b
1 22
2 33
3 44
4 11
5 66
6 77
查询后显示应该是 a b
3 99
6 154
求助中,在线等啊 展开
3个回答
展开全部
declare
temp_a varchar2(10);
temp_b varchar2(10);
temp_count integer;
temp_value integer;
cursor cur_i is select a,b,rownum from t_table;
begin
temp_value:=0;
open cur_i;
loop
fetch cur_i into temp_a,temp_b,temp_count;
exit when cur_i%notfound;
temp_value:= temp_value+temp_b;
if temp_count mod 3 =0 then
insert into t_table_result values(temp_a,temp_value);
temp_value:= 0;
end if;
end loop;
end;
试试看,数据库为:oracle
temp_a varchar2(10);
temp_b varchar2(10);
temp_count integer;
temp_value integer;
cursor cur_i is select a,b,rownum from t_table;
begin
temp_value:=0;
open cur_i;
loop
fetch cur_i into temp_a,temp_b,temp_count;
exit when cur_i%notfound;
temp_value:= temp_value+temp_b;
if temp_count mod 3 =0 then
insert into t_table_result values(temp_a,temp_value);
temp_value:= 0;
end if;
end loop;
end;
试试看,数据库为:oracle
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select 3,sum(select * from table where a<4) from table;
union
select 6,sum(select * from table where a>3) from table;
看了 楼下的 对啊 该用游标的
union
select 6,sum(select * from table where a>3) from table;
看了 楼下的 对啊 该用游标的
追问
是sql,a为日期该怎么做啊
追答
SQL 也可以用 过程做啊 ..
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询