看着有点乱,我给大家翻译一下:
要拼写这样一个sql语句,前四个字段就不用说了,后八个字段的计算公式分别为:
D1=取按subj_id_1,subj_id_2,subj_id_3,subj_id_4分组中的最大的p3值
I1=取与D1值处于同条纪录的p4的值
D2=取subj_id_1,subj_id_2,subj_id_3,subj_id_4分组中p3,p5中的第二大的值
I2=取与D2值处于同条纪录的p4(如果是p3)或p6(如果是p5)的值
D3=取subj_id_1,subj_id_2,subj_id_3,subj_id_4分组中p3,p5,p7中的第三大的值
I3=取与D3值处于同条纪录的p4(如果是p3)或p6(如果是p5)或p8(如果是p7)的值
D4=取subj_id_1,subj_id_2,subj_id_3,subj_id_4分组中p3,p5,p7,p9中的第四大的值
I4=取与D4值处于同条纪录的p4(如果是p3)或p6(如果是p5)或p8(如果是p7)或p10(如果是p9)的值

解决方案 »

  1.   

    我先求出D1,I1,其他以此类推。select subj_id_1,subj_id_2,subj_id_3,subj_id_4,
    (select max(p3) from pmC_64_hr group by subj_id_1,subj_id_2,subj_id_3,subj_id_4) D1,
    (select p4 from pmC_64_hr where p3=((select max(p3) from pmC_64_hr group by subj_id_1,subj_id_2,subj_id_3,subj_id_4))) I1
    from pmC_64_hr
      

  2.   

    和我想法一样,D1,I1可以很好求,那D2,D3,D4中的第二大,第三大。。怎么算呀。
      

  3.   

    建议你先写一个比较函数,语句中调用该函数即可,也可增强可读性。================================================================CSDN 论坛助手 Ver 1.0 B0402提供下载。 改进了很多,功能完备!★  浏览帖子速度极快![建议系统使用ie5.5以上]。 ★  多种帖子实现界面。 
    ★  保存帖子到本地[html格式]★  监视您关注帖子的回复更新。
    ★  可以直接发贴、回复帖子★  采用XML接口,可以一次性显示4页帖子,同时支持自定义每次显示帖子数量。可以浏览历史记录! 
    ★  支持在线检测程序升级情况,可及时获得程序更新的信息。★★ 签名  ●  
         可以在您的每个帖子的后面自动加上一个自己设计的签名哟。Http://www.ChinaOK.net/csdn/csdn.zip
    Http://www.ChinaOK.net/csdn/csdn.rar
    Http://www.ChinaOK.net/csdn/csdn.exe    [自解压]
      

  4.   

    The best way is to make a function called by SQL . Otherwise the SQL will look very awful