У меня есть немного кода, который я не могу нормально работать. Часть дает мне проблемы заключается в следующем:Сброс переменной до 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 и Subset, но затем сбрасывается в 0, когда они меняются:
sample data http://nadacforum.com/Platinum.png
Вы хотите вернуть значение из выражения или просто назначить ноль переменной? Вы используете это в запросе или функции/процедуре? – bfavaretto
Пока соответствие RegNum и Subset, я хочу, чтобы переменная оставалась активной, но после того, как одно из этих изменений я хочу, чтобы она вернулась к нулю. Это находится в запросе –
@ChrisNelson выводит вывод 'if' usnig' в @ Platinum'. См. Мой ответ –