Advertisement
Piexplode

sp_CreateTournament - V2

Aug 12th, 2020 (edited)
1,532
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MySQL 2.03 KB | None | 0 0
  1. IF (SELECT COUNT(1) FROM vw_ActiveSeasonRefs A WHERE A.SeasonName = VarSeasonName) = 1
  2. THEN
  3.     IF (SELECT COUNT(1)  
  4.         FROM t_SeasonTourData S
  5.           JOIN vw_ActiveSeasonRefs A
  6.             ON S.SeasonReference = A.ActiveSeasonRef
  7.          WHERE A.SeasonName = VarSeasonName
  8.            AND S.Playoffs = 1) = 1
  9.     THEN
  10.       SELECT 'This season is complete. No new tournaments may be created until the next season is initalised.';
  11.     ELSEIF (SELECT MAX(S.SeasonTourNo)
  12.               FROM t_SeasonTourData S
  13.               JOIN vw_ActiveSeasonRefs A
  14.                 ON S.SeasonReference = A.ActiveSeasonRef
  15.              WHERE A.SeasonName = VarSeasonName) <= 2
  16.     THEN
  17.         IF (SELECT COUNT(1) FROM t_Sets) > 0
  18.         THEN
  19.             WITH RECURSIVE cte_SetIds AS
  20.                (SELECT 1 AS SetId
  21.                  UNION ALL
  22.                 SELECT SetId + 1
  23.                   FROM cte_SetIds
  24.                  WHERE SetId + 1 < (SELECT POW(2,CEIL(LOG(2,(SELECT COUNT(1)
  25.                                       FROM t_Signups S
  26.                                       JOIN vw_ActiveSeasonRefs A
  27.                                         ON S.SeasonRefFk = A.ActiveSeasonRef
  28.                                      WHERE A.SeasonName = VarSeasonName)) - 0.5)) AS BracketSize))
  29.             SELECT SetId + MAX(SetIdPk) AS NewSetId
  30.               FROM cte_SetIds C
  31.         CROSS JOIN t_Sets S;
  32.        ELSE
  33.             WITH RECURSIVE cte_SetIds AS
  34.                (SELECT 1 AS SetId
  35.                  UNION ALL
  36.                 SELECT SetId + 1
  37.                   FROM cte_SetIds
  38.                  WHERE SetId + 1 < (SELECT POW(2,CEIL(LOG(2,(SELECT COUNT(1)
  39.                                       FROM t_Signups S
  40.                                       JOIN vw_ActiveSeasonRefs A
  41.                                         ON S.SeasonRefFk = A.ActiveSeasonRef
  42.                                      WHERE A.SeasonName = VarSeasonName)) - 0.5)) AS BracketSize))
  43.             SELECT SetId AS NewSetId
  44.               FROM cte_SetIds C;
  45.         END IF;              
  46.     ELSE
  47.         SELECT 'Playoffs are not yet supported';
  48.     END IF;
  49. ELSE
  50.  SELECT 'Invalid Season Name';
  51. END IF
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement