Table bidrank(vendorcode char(10),price money,submittime datetime,rank int)是一个用来保存供应商报价资料的表,
其中vendorcode:是供应商代码
price:为报价
rank:为供应商报价排名问题:下面是用T-sql语言给供应商加上排名的程序。
排名规则为:名次按报价从大到小排列,如果价格相同,则按时间先后次序排名。
请在各空白处填上适当的语句,以实现这一功能。(假设排名前rank的初始值为0)
create procedure refreshRank_sp
as
declare @CurrentRank int ,@vendorCode nvarchar(20)
set @quoteByvendor= cursor scroll for
select vendorcode from bidrank _______________
open @quoteByvendo
________________________
select @CurrentRank=1
while(_____________)
begin
update bidrank
 set rank=@CurrentRank
 where vendorcode=@vendorcode
 fetch next from @quoteByvendor into @vendorcode
 select @CurrentRank=_____________________
endreturn 0
go各位大虾帮着看看,谢了

解决方案 »

  1.   

    select vendorcode from bidrank k where not exists(select * from bidrank where (k.price=price and  submittime<k.submittime) or (price<k.price))fetch next from @quoteByvendor into @vendorcode while @@fetch_status=0select @CurrentRank=@CurrentRank+1 
      

  2.   

    order by price descfetch next from @quoteByvendor into @vendorcode@@fetch_status=0@CurrentRank+1
      

  3.   

    Table bidrank(vendorcode char(10),price money,submittime datetime,rank int)是一个用来保存供应商报价资料的表, 
    其中vendorcode:是供应商代码 
    price:为报价 
    rank:为供应商报价排名 问题:下面是用T-sql语言给供应商加上排名的程序。 
    排名规则为:名次按报价从大到小排列,如果价格相同,则按时间先后次序排名。 
    请在各空白处填上适当的语句,以实现这一功能。(假设排名前rank的初始值为0) 
    create procedure refreshRank_sp 
    as 
    declare @CurrentRank int ,@vendorCode nvarchar(20) 
    set @quoteByvendor= cursor scroll for 
    select vendorcode from bidrank _order by price,submittime_____________ 
    open @quoteByvendo 
    fetch next from @quoteByvendor into @vendorcode _______________________ 
    select @CurrentRank=1 
    while(____@@fetch_status=0_________) 
    begin 
    update bidrank 
    set rank=@CurrentRank 
    where vendorcode=@vendorcode 
    fetch next from @quoteByvendor into @vendorcode 
    select @CurrentRank=____@CurrentRank______+1___________ 
    end return 0 
    go 各位大虾帮着看看,谢了 
      

  4.   

    1、order by price desc,submittime asc
    2、fetch next from @quoteByvendor into @vendorcode 
    3、@@fetch_status = 0
    4、@CurrentRank + 1
      

  5.   

    修改第一个空select vendorcode from bidrank
    order by price desc ,submittime