Ò»µÀsql±ÊÊÔÌâ
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=_____________________
end
return 0
go
¸÷λ´óϺ°ï×Å¿´¿´£¬Ð»ÁË
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=0
select @CurrentRank=@CurrentRank+1
order by price desc
fetch next from @quoteByvendor into @vendorcode
@@fetch_status=0
@Curr
Ïà¹ØÎÊ´ð£º
ÏÖÔÚÓÐÁ½¸öÒì¹¹µÄsql serverÊý¾Ý¿â,ÎÒÏ뽫µÚÒ»¸ö±íÖеÄÊý¾Ýµ¼Èëµ½µÚ¶þ¸ö±íÖÐ,×Ô¼ºÖ¸¶¨µ¼ÈëÊý¾ÝµÄ×Ö¶Î,ÈçºÎµ¼ÈëÊý¾ÝÄØ,´ó¼ÒÌÖÂÛÒ»ÏÂ?
dts¹¤¾ß
µ¼Èëµ¼³ö¹¤¾ß.
DD
¹þ¹þ£¬¹À¼ÆÕâλÊǵØQIOU¶¼Êܲ»Á˵Ä
Ö±½ÓÐ ......
СµÜÊǸöÐÂÊÖ ÏÖÔÚÓиöÎÊÌâÒ»Ö±²»Äܽâ¾ö
ÀýÈç
procedure produce_proc
@p001 nvarchar(8000),
@p002 nvarchar(8000),
@p003 nvarchar(8000),
& ......
with adod_dict do
begin
close;
commandtext:='select bgqxcode,count(*) wjsl from wscl_wsda_file where wjnd=:tnd group by bgqxcode'; ......
[code=select a.fyear,b.fname,sum(a.fendbal) as fendbal,
'1ÔÂ'=case when fperiod=1 then sum(a.fendbal) else 0 end ,
'2ÔÂ'=case when fperiod=2 then sum(a.fendbal) else 0 end ,
& ......