我的代码,这一点,我确实不能正常工作。给我找麻烦的部分是这样的:重置变量为0
IF(Class_Subset = @prevSub AND RegNum = @prevNum AND `DRI` >99.99 ,
@Platinum :[email protected] + 1 ,'' )
我需要做的是告诉@Platinum
来重置回zero
一旦Class_Subset
,或RegNum
条件不再满足。
任何想法?
整个代码:
SELECT
Harley.Hgt, Harley.RegNum, Harley.Callname, Harley.OLastname,
Harley.Tpe, Harley.Points, Harley.Class, Harley.Total_Points,
Harley.Title, Harley.Platinum, Harley.Silver_Purple,
Harley.Date_Earned, Harley.Judge, Harley.HostClub, Harley.DRI,
Harley.Class_Subset, Harley.IncorrectRegNum, Harley.MemNum, Harley.ID
FROM
(
SELECT
Hgt, RegNum, Callname, OLastname, Tpe, Points, Class,
Total_Points, Title, Silver_Purple, Date_Earned, Judge,
HostClub, DRI, Class_Subset, IncorrectRegNum, MemNum, ID,
IF (
Class_Subset = @prevSub
AND RegNum = @prevNum
AND `DRI` > 99.99,
@Platinum := @Platinum + 1,
0
) AS Platinum,
@prevSub := Class_Subset,
@prevNum := RegNum
FROM
Harley,
(
SELECT @Platinum := 0, @prevSub := '', @prevNum := ''
) r
ORDER BY RegNum, Class_Subset, Date_Earned
) Harley
这就是文件的样子,你可以看到为什么它需要记住的变量,而REGNUM和子集比赛,但随后重置为0,一旦他们改变:
sample data http://nadacforum.com/Platinum.png
你想从表达式返回值,还是只将0赋值给变量?你在查询或函数/过程中使用这个吗? – bfavaretto
虽然RegNum和Subset匹配我希望变量保持活动状态,但是一旦这些变化中的任何一个发生变化,我都希望它重置为零。这是在'if' usnig'查询 –
@ChrisNelson捕获输出到@ Platinum'。看到我的回答 –