| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- DROP PROCEDURE IF EXISTS `CALCUPGARDE`;
- delimiter ;;
- CREATE PROCEDURE `CALCUPGARDE`(IN `PLAYER` INT)
- BEGIN
- DECLARE
- MLAYER,
- MCOUNT,
- MCOUNT1,
- MCOUNT2 INT;
-
- SET MLAYER := PLAYER;
- SELECT
- COUNT(*) INTO MCOUNT
- FROM
- AR_BS_BONUS_103_CALC T
- WHERE
- T.LAYER = MLAYER
- AND USER_TYPE10 = 10
- AND USER_TYPE = 0;
- IF
- ( MCOUNT > 0 ) THEN
- BREAKLABLE :
- WHILE
- MLAYER > 0 DO
- SELECT
- COUNT(*) INTO MCOUNT1
- FROM
- AR_BS_BONUS_103_CALC T1
- WHERE
- T1.USER_TYPE10 = 10
- AND T1.LAYER = MLAYER - 1;
- UPDATE AR_BS_BONUS_103_CALC T1
- INNER JOIN ( SELECT INTRODUCER_ID FROM AR_BS_BONUS_103_CALC WHERE LAYER = MLAYER AND USER_TYPE10 = 10 GROUP BY INTRODUCER_ID ) T2 ON T1.USER_ID = T2.INTRODUCER_ID
- AND T1.USER_TYPE10 = 0
- AND T1.LAYER = MLAYER - 1
- SET T1.USER_TYPE10 = 10,
- T1.USER_TYPE = 10;
- SELECT
- COUNT(*) INTO MCOUNT2
- FROM
- AR_BS_BONUS_103_CALC T1
- WHERE
- T1.USER_TYPE10 = 10
- AND T1.LAYER = MLAYER - 1;
- IF
- ( MCOUNT1 = MCOUNT2 ) THEN
- LEAVE BREAKLABLE;
-
- END IF;
-
- SET MLAYER := MLAYER - 1;
-
- END WHILE;
-
- END IF;
- END
- ;;
|