۱۳۹۷ اردیبهشت ۰۹, ۰۲:۳۲ ب.ظ
(آخرین تغییر در ارسال: ۱۳۹۷ اردیبهشت ۰۹, ۰۶:۲۸ ب.ظ توسط hossein.hm.)
UPDATE grade JOIN (SELECT codefard,ave,class,
IF(ave=@_last_ave,@curRank:=@curRank,@curRank:=@_sequence) AS rank,
@_sequence:=@_sequence+1,@_last_ave:=ave
FROM grade, (SELECT @curRank := 1, @_sequence:=1, @_last_ave:=0) r
ORDER BY ave DESC)as d ON grade.codefard = d.codefard SET grade.allrank=d.rank
این سابکویری بطور کامل و درست کار میکنه ولی وقتی میخوام اپدیت کنم درست اینکارو انجام نمیده
سابکویری معدل و کدفرد را از تیبل میگیره و رنک را به ما میده و درست کار میکنه ولی زمانی که میخوام اپدیت کنم تو همون تیبل رنک درستی را وارد نمیکنهIF(ave=@_last_ave,@curRank:=@curRank,@curRank:=@_sequence) AS rank,
@_sequence:=@_sequence+1,@_last_ave:=ave
FROM grade, (SELECT @curRank := 1, @_sequence:=1, @_last_ave:=0) r
ORDER BY ave DESC)as d ON grade.codefard = d.codefard SET grade.allrank=d.rank
این سابکویری بطور کامل و درست کار میکنه ولی وقتی میخوام اپدیت کنم درست اینکارو انجام نمیده
عکس 1 نتیجه درست زمان اجرای سلکت هست
عکس2 نتیجه اپدیت تو تیبل که اگه به ستون allrank نگاه کنید خروجی با ستون rank عکس1 فرق داره
با تشکر