我在设计程序的时候遇到的问题:假设有个表  table(a,b,c,d)(1)我想做一个动作: 将table.a里的数值进行排序,并把排序结果放在table.b里,就是为每个记录按a排个名次,有那位兄弟做过类似的 ,给个代码来研究研究.(2)按4个参考数值范围,把记录评等级, a分别在(90-100) (80-90) (70-80) (60-70) ,然后把记录 评到的级别放在c字段上.各位给个意见拉,先谢谢了

解决方案 »

  1.   

    1、select * into b from a order by ff1
    2、union吧,select *, '优秀' aaa from tablea where a >= 90 and a <= 100
                union select *, '良好' aaa from tablea where a >= 80 and a <= 90
    ...
     
      

  2.   

    create table Test 
    (F1 char(10), 
    F2 char(10)) --测试表 insert into Test 
    select 'a' F1,'1' F2 
    union 
    select 'b' F1,'2' F2 
    union 
    select 'c' F1,'3' F2 
    union 
    select 'd' F1,'3' F2 
    union 
    select 'e' F1,'4' F2 
    union 
    select 'f' F1,'4' F2 
    union 
    select 'g' F1,'4' F2 
    union 
    select 'h' F1,'7' F2 
    union 
    select 'i' F1,'9' F2 
    ------------------------- SELECT ( 
    SELECT count(*)+1 as dd 
    FROM [Test ] as a where a.[F2]<b.[F2] ) AS ord,b.[F1], b.[F2] 
    FROM [Test ] as b 
    order by b.[F2]; ------------------------- 
    drop table test
      

  3.   

    to  wycg_cnh20(伤心郁闷中)
        都是在后台运行。to   jinjazz(人雅的标记--落寞刺客) 
        a,b,c,d,e,f,g...是什么来的,测试表是不是有多少个记录,就要这样写多少条啊 ,我看不大明白算法,但如果是这样的话那我的记录可是有好多条的啊 ,请再帮忙
      

  4.   

    1
    update table t set t.b = (selec Count(*) + 1 from table where a > t.a)
    2
    update table  set c = '优秀' where a between 90 and 100
    update table  set c = '良好'  where a between 80 and 90
    ...
      

  5.   

    hamans(用delphi)给测试表加几条数据,要不怎么测,就是按F2的数字排名,
      

  6.   

    jinjazz(人雅的标记--落寞刺客) 你的代码好像还没有把排名更新到数据库里啊,能写完整吗?而且 里面有几个 as dd  ,as ord不知道是干什么的 ,能说明一下吗?
     meiqingsong(阿飛)你的那段代码我试过,但给出 "操作必须使用一个可更新的查询" 的错误,是什么原因呢,是不是数据库问题?我用access的
      

  7.   

    应该是数据库问题
    我的在sql server 中可用
      

  8.   

    zhlwyy(海龙▄︻┳═一AK47) 是什么意思??
      

  9.   

    我在 adoquery1.SQL.Add('update  ravck set ravck.b = rav.mc from ravck rav');
    //rav ,ravck为两个表,
    为什么老是提示:操作符丢失
      

  10.   

    >>为什么老是提示:操作符丢失你用的是access??access不支持连表更新,只能用中间表
      

  11.   

    1
    update table t set t.b = (selec Count(*) + 1 from table where a <t.a)
    order by  b
    2
    update table  set c = '优秀' where a between 90 and 100
    update table  set c = '良好'  where a between 80 and 90
    ...