none
这个SQL语句 有点难度大侠们过来看看 RRS feed

  • 问题

  • select * from (
    
    
    
    select dense_rank() OVER (ORDER BY s.stocktype asc ,x.updatetime desc,x.userid)AS 
    
    
    
    RowNo,ROW_NUMBER() OVER(PARTITION BY s.stocktype,s.userid ORDER BY s.stocktype desc,x.updatetime asc,x.userid) as rn ,
    
    
    
    s.StockID,s.StockGuid,s.UserID,s.Model,s.
    
    
    
    Manufacturer,s.Packaging,s.Lot,s.Quantity,
    
    
    
    s.Remark,s.StockType from stockforsearch s WITH (NOLOCK)
    
    
    
    left join xinpian_userlog x WITH (NOLOCK) on s.userid=x.userid
    
    
    
    where model like 'lm358%')t where rn<2 order by rowno asc
    
    
    
    
    
    
    
    现在运行的效果是
    
    
    
    
    我现在只能做到这样了 我想取rn最大值 现在都是1
    怎么实现 我的目的就是想取相同RowNo 下的rn值 最大的那条 rowNO是用来分页的 rn是用来分组的 希望大家给个意见
    
    
    
    
    • 已编辑 LevonLee 2010年12月14日 13:47 弄张图
    2010年12月14日 13:39

答案

  • 使用AdventureWorks示例数据库中的表[AdventureWorks].[Person].[Address],以下方法实现的是类似你的需求,即按各州分组,取邮编最大的那一个市.

    with temp as
    (
    SELECT stateprovinceid,postalcode,city, ROW_NUMBER() OVER(PARTITION BY stateprovinceid ORDER BY postalcode desc) as rn
     FROM [AdventureWorks].[Person].[Address]
    )
    select * from temp where rn=1 order by StateProvinceID asc
    
    

    Hope it helps.


    Mark as Answer if it helps. This posting is provided "AS IS" with no warranties, confers no rights.
    • 已标记为答案 LevonLee 2010年12月16日 7:01
    2010年12月15日 7:31