select v_name,sum(vjn_fenshu) as jifen 
from vendorjifennode inner join vendor on vjn_vendorid = vendor.v_id
where vjn_datetime between '2010-11-1' and '2010-12-31'
group by v_name
order by sum(vjn_fenshu) desc
怎么知道某个v_name在这个查询中排第几呢.就是说我想实现的是
v_name 排名
-------------
name1   3

解决方案 »

  1.   

    select v_name,sum(vjn_fenshu) as jifen , rank() over(order by sum(vjn_fenshu) desc
    ) as 排名
    from vendorjifennode inner join vendor on vjn_vendorid = vendor.v_id
    where vjn_datetime between '2010-11-1' and '2010-12-31'
    group by v_name
      

  2.   

    select v_name,
    sum(vjn_fenshu) as jifen ,
    row_number()over(order by getdate())
    from vendorjifennode inner join vendor on vjn_vendorid = vendor.v_id
    where vjn_datetime between '2010-11-1' and '2010-12-31'
    group by v_name
    order by sum(vjn_fenshu) desc
      

  3.   

    select row_number()over(order by jifen desc)as rownumber,v_name from(
    select v_name,sum(vjn_fenshu) as jifen 
    from vendorjifennode inner join vendor on vjn_vendorid = vendor.v_id
    where vjn_datetime between '2010-11-1' and '2010-12-31'
    group by v_name
    --order by sum(vjn_fenshu) desc
    )t 
      

  4.   

    首先,谢谢楼上的各位
    但小弟忘记说,我用的是sql2000
      

  5.   

    select v_name,
        sum(vjn_fenshu) as jifen ,
    into #t
    from vendorjifennode inner join vendor on vjn_vendorid = vendor.v_id
    where vjn_datetime between '2010-11-1' and '2010-12-31'
    group by v_name
    order by sum(vjn_fenshu) descselect *,pm=(select count(*) from #t where v_name=t.v_name and jifen>=t.jifen)
    from #t t
    用个临时表最简单了,呵呵
      

  6.   

    sql 2000只能用到临时表了!