有表T1,以下字段
ID   MSMC(门市名称)CP(产品) SL(销量)汇总后要得到下表,排序字段希望能自动生成,请问要如何做到ID   MSMC(门市名称) PX(排序)  CP(产品) SL(销量)
1     A店              1         苹果       100
2     A店              2         荔枝       90
3     A店              3         火龙果     80
6     B店              1         苹果       100
7     B店              2         荔枝       90
11    B店              3         火龙果     60

解决方案 »

  1.   

    select row_number() over(order by getdate()) px,
    id,....
    from tb
      

  2.   

    row_number() over(order by MSMC)
      

  3.   

    select *,PX=row_number()over(partition by MSMC order by SL Desc) from TableName
      

  4.   

    补充一下,两个不同门市,排序的序号又是从1开始的ID       MSMC(门市名称)   PX(排序)     CP(产品)   SL(销量) 
    1           A店                             1                   苹果               100 
    2           A店                             2                   荔枝               90 
    3           A店                             3                   火龙果           80 
    6           B店                             1                   苹果               100 
    7           B店                                               荔枝               90 
    11         B店                             3                   火龙果           60 
      

  5.   

    row_number() over(partition by MSMC order by SL desc)
      

  6.   

    row_number() over(partition by MSMC order by SL desc)
      

  7.   

    select ID
    , MSMC
    , PX = row_number() over(partition by MSMC order by SL desc)
    , CP
    , SL
    from T1
    order by MSMC
      

  8.   

     在SQL2005中利用DENSE_RANK()排名函数对现有数据进行排序改造
    http://blog.csdn.net/claro/archive/2009/06/10/4257457.aspx在SQL2005中利用NTILE()排名函数对现有数据进行排序改造
    http://blog.csdn.net/claro/archive/2009/06/10/4257392.aspx在SQL2005中利用RANK()函数与ROW_NUMBER()对现有数据进行排序改造
    http://blog.csdn.net/claro/archive/2009/06/10/4257090.aspx
      

  9.   


    select id,msmc,(select count(1) from t1  where id=a.id and sl>=a.sl) as px,cp,sl
    from t1 a 
      

  10.   


    select id,msmc,(select count(1) from t1  where id=a.id and sl>=a.sl) as px,cp,sl
    from t1 a order by id,px修改了一下。
      

  11.   

    再修改一下:select id,msmc,(select count(1) from t1  where id=a.id and sl>=a.sl) as px,cp,sl
    from t1 a order by msmc,px