日期:2014-05-17  浏览次数:20860 次

坐等大神,求救
有张表 t1数据结构如下
accessno   xp sp    optpye    fail  success
  1111     4   5      sub      7      8    
  1111     1   6      unsub    4      0
  2222     5   4      sub      9      2
我是根据 accessno 和 optype 分组 出现上面的情况
我想要得到的是下面的结果
accessno   xp sp    optpye    fail  success
  1111     5   11      sub      7      8    
  1111     5   11      unsub    4      0
  2222     5   4      sub      9      2
就是 acccessno相同的情况下  将sp ,xp  sum起来 后面的不能改变  而且还是要展示那么原来的列
在线等  大神答复

------解决方案--------------------
select accessno,
       (select sum(xp) from t1 where accessno=tt.accessno) as xp,
       (select sum(sp) from t1 where accessno=tt.accessno) as sp,
       optpye,
       fail,
       success
  from t1 tt

------解决方案--------------------
select accessno,
       t2.xp,
       t2.sp,
       optpye,
       fail,
       success
  from t1,(select accessno,sum(xp) xp,sum(sp) from t1 group by accessno) t2
where t1.accessno=t2.accessno

------解决方案--------------------
以后2种都访问多次数据库。应该用分析函数

我给你个示意
sum(xp) over (partition by no order by no 
rows between unbounded preceding and unbounded following)