update a
set qxcs=(select count(*) from ytk_tc where jh=a.jh and qssd<=a.qssd)
from ytk_tc a

解决方案 »

  1.   

    if object_id('pubs..tb') is not null
       drop table tb
    gocreate table tb
    (
    JH char(1),
    QXCS int,
    QSSD decimal(18,2)
    )insert into tb(JH,QXCS,QSSD) values('A',    8,      1000.5)
    insert into tb(JH,QXCS,QSSD) values('A',    7,      2010.3)
    insert into tb(JH,QXCS,QSSD) values('B',    3,      1500.8)
    insert into tb(JH,QXCS,QSSD) values('B',    5,      1930.25)
    insert into tb(JH,QXCS,QSSD) values('B',    9,      1915.78)update tb
    set qxcs = t.px
    from tb ,(select px=(select count(1) from tb where JH=a.JH and QSSD<a.QSSD)+1 , * from tb a) t
    where tb.jh = t.jh and tb.qxcs = t.qxcsselect * from tbdrop table tbJH   QXCS        QSSD                 
    ---- ----------- -------------------- 
    A    1           1000.50
    A    2           2010.30
    B    1           1500.80
    B    3           1930.25
    B    2           1915.78(所影响的行数为 5 行)