Advertisement
Guest User

Untitled

a guest
Jun 20th, 2019
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.99 KB | None | 0 0
  1. UPDATE A
  2. SET Grupo = B.Grupo
  3. FROM
  4. Clasificado A
  5. INNER JOIN (
  6. SELECT
  7. X.IdPais,
  8. CASE X.Orden % 8
  9. WHEN 0 THEN 'A'
  10. WHEN 1 THEN 'B'
  11. WHEN 2 THEN 'C'
  12. WHEN 3 THEN 'D'
  13. WHEN 4 THEN 'E'
  14. WHEN 5 THEN 'F'
  15. WHEN 6 THEN 'G'
  16. WHEN 7 THEN 'H'
  17. END AS Grupo
  18. FROM
  19. (
  20. SELECT
  21. IdPais,
  22. ROW_NUMBER()OVER(ORDER BY NEWID()) AS Orden
  23. FROM
  24. Clasificado
  25. WHERE
  26. Grupo IS NULL
  27. ) X
  28. ) B ON A.IdPais = B.IdPais
  29.  
  30. DECLARE @Grupo CHAR(1)
  31. DECLARE @Pais1 VARCHAR(100)
  32. DECLARE @Pais2 VARCHAR(100)
  33. DECLARE @Orden1 INT
  34. DECLARE @Orden2 INT
  35. DECLARE @fecha VARCHAR(19)
  36. DECLARE @hora VARCHAR(8)
  37.  
  38. TRUNCATE TABLE Fixture
  39.  
  40. DECLARE CURSOR_PAISES CURSOR STATIC FORWARD_ONLY FOR
  41.  
  42. SELECT
  43. A.Grupo,
  44. B.Pais,
  45. ROW_NUMBER()OVER(PARTITION BY A.Grupo ORDER BY Cabeza DESC) AS Orden
  46. FROM
  47. Clasificado A
  48. INNER JOIN Pais B ON A.IdPais = B.IdPais
  49.  
  50. OPEN CURSOR_PAISES
  51.  
  52. FETCH NEXT FROM CURSOR_PAISES INTO @Grupo, @Pais1, @Orden1
  53. WHILE @@FETCH_STATUS = 0
  54. BEGIN
  55.  
  56. DECLARE @aleatario FLOAT
  57. SET @aleatario = RAND()
  58.  
  59. DECLARE CURSOR_FIXTURE CURSOR STATIC FORWARD_ONLY FOR
  60.  
  61. SELECT
  62. X.Pais, X.Orden
  63. FROM
  64. (
  65. SELECT
  66. A.Grupo,
  67. B.Pais,
  68. ROW_NUMBER()OVER(PARTITION BY A.Grupo ORDER BY Cabeza DESC) AS Orden
  69. FROM
  70. Clasificado A
  71. INNER JOIN Pais B ON A.IdPais = B.IdPais
  72. ) X
  73. WHERE
  74. X.Orden > @Orden1
  75. AND X.Grupo = @Grupo
  76.  
  77. OPEN CURSOR_FIXTURE
  78.  
  79. FETCH NEXT FROM CURSOR_FIXTURE INTO @Pais2, @Orden2
  80. WHILE @@FETCH_STATUS = 0
  81. BEGIN
  82.  
  83. SET @fecha = '2022-06-15'
  84.  
  85. DECLARE @hora2 FLOAT
  86. SET @hora2 = RAND() * 3
  87.  
  88. IF(@hora2 < 1)
  89. BEGIN
  90. SET @hora = '10:00:00'
  91. END
  92. ELSE
  93. BEGIN
  94. IF(@hora2 < 2)
  95. BEGIN
  96. SET @hora = '13:00:00'
  97. END
  98. ELSE
  99. BEGIN
  100. SET @hora = '15:00:00'
  101. END
  102. END
  103.  
  104. SET @fecha = @fecha + ' ' + @hora
  105.  
  106. IF(@Grupo ='A')
  107. BEGIN
  108. SET @fecha = CONVERT(VARCHAR(19), DATEADD(day, 0, CONVERT(DATETIME, @fecha, 121)))
  109. END
  110.  
  111. IF(@Grupo ='B')
  112. BEGIN
  113. SET @fecha = CONVERT(VARCHAR(19), DATEADD(day, 1, CONVERT(DATETIME, @fecha, 121)))
  114. END
  115.  
  116. IF(@Grupo ='C')
  117. BEGIN
  118. SET @fecha = CONVERT(VARCHAR(19), DATEADD(day, 2, CONVERT(DATETIME, @fecha, 121)))
  119. END
  120.  
  121. IF(@Grupo ='D')
  122. BEGIN
  123. SET @fecha = CONVERT(VARCHAR(19), DATEADD(day, 3, CONVERT(DATETIME, @fecha, 121)))
  124. END
  125.  
  126. IF(@Grupo ='E')
  127. BEGIN
  128. SET @fecha = CONVERT(VARCHAR(19), DATEADD(day, 4, CONVERT(DATETIME, @fecha, 121)))
  129. END
  130.  
  131. IF(@Grupo ='F')
  132. BEGIN
  133. SET @fecha = CONVERT(VARCHAR(19), DATEADD(day, 5, CONVERT(DATETIME, @fecha, 121)))
  134. END
  135.  
  136. IF(@Grupo ='G')
  137. BEGIN
  138. SET @fecha = CONVERT(VARCHAR(19), DATEADD(day, 6, CONVERT(DATETIME, @fecha, 121)))
  139. END
  140.  
  141. IF(@Grupo ='H')
  142. BEGIN
  143. SET @fecha = CONVERT(VARCHAR(19), DATEADD(day, 7, CONVERT(DATETIME, @fecha, 121)))
  144. END
  145.  
  146. PRINT @fecha
  147.  
  148. IF(@Orden1 = 1 AND @Orden2 = 2)
  149. BEGIN
  150. INSERT INTO Fixture(Grupo, PaisLocal, PaisVisita, Fecha) VALUES (@Grupo, @Pais1, @Pais2, @fecha)
  151. END
  152.  
  153. IF(@aleatario < 0.5)
  154. BEGIN
  155. IF(@Orden1 = 1 AND @Orden2 = 3)
  156. BEGIN
  157. INSERT INTO Fixture(Grupo, PaisLocal, PaisVisita, Fecha) VALUES (@Grupo, @Pais1, @Pais2, DATEADD(DAY, 2, CONVERT(DATETIME, @fecha)))
  158. END
  159. IF(@Orden1 = 1 AND @Orden2 = 4)
  160. BEGIN
  161. INSERT INTO Fixture(Grupo, PaisLocal, PaisVisita, Fecha) VALUES (@Grupo, @Pais2, @Pais1, DATEADD(DAY, 4, CONVERT(DATETIME, @fecha)))
  162. END
  163.  
  164. IF(@Orden1 = 2 AND @Orden2 = 3)
  165. BEGIN
  166. INSERT INTO Fixture(Grupo, PaisLocal, PaisVisita, Fecha) VALUES (@Grupo, @Pais2, @Pais1, DATEADD(DAY, 4, CONVERT(DATETIME, @fecha)))
  167. END
  168.  
  169. IF(@Orden1 = 2 AND @Orden2 = 4)
  170. BEGIN
  171. INSERT INTO Fixture(Grupo, PaisLocal, PaisVisita, Fecha) VALUES (@Grupo, @Pais1, @Pais2, DATEADD(DAY, 2, CONVERT(DATETIME, @fecha)))
  172. END
  173.  
  174. IF(@Orden1 = 3 AND @Orden2 = 4)
  175. BEGIN
  176. INSERT INTO Fixture(Grupo, PaisLocal, PaisVisita, Fecha) VALUES (@Grupo, @Pais1, @Pais2, DATEADD(DAY, 0, CONVERT(DATETIME, @fecha)))
  177. END
  178.  
  179. END
  180. ELSE
  181. BEGIN
  182. IF(@Orden1 = 1 AND @Orden2 = 3)
  183. BEGIN
  184. INSERT INTO Fixture(Grupo, PaisLocal, PaisVisita, Fecha) VALUES (@Grupo, @Pais2, @Pais1, DATEADD(DAY, 2, CONVERT(DATETIME, @fecha)))
  185. END
  186. IF(@Orden1 = 1 AND @Orden2 = 4)
  187. BEGIN
  188. INSERT INTO Fixture(Grupo, PaisLocal, PaisVisita, Fecha) VALUES (@Grupo, @Pais2, @Pais1, DATEADD(DAY, 4, CONVERT(DATETIME, @fecha)))
  189. END
  190.  
  191. IF(@Orden1 = 2 AND @Orden2 = 3)
  192. BEGIN
  193. INSERT INTO Fixture(Grupo, PaisLocal, PaisVisita, Fecha) VALUES (@Grupo, @Pais1, @Pais2, DATEADD(DAY, 4, CONVERT(DATETIME, @fecha)))
  194. END
  195.  
  196. IF(@Orden1 = 2 AND @Orden2 = 4)
  197. BEGIN
  198. INSERT INTO Fixture(Grupo, PaisLocal, PaisVisita, Fecha) VALUES (@Grupo, @Pais1, @Pais2, DATEADD(DAY, 2, CONVERT(DATETIME, @fecha)))
  199. END
  200.  
  201. IF(@Orden1 = 3 AND @Orden2 = 4)
  202. BEGIN
  203. INSERT INTO Fixture(Grupo, PaisLocal, PaisVisita, Fecha) VALUES (@Grupo, @Pais2, @Pais1, DATEADD(DAY, 0, CONVERT(DATETIME, @fecha)))
  204. END
  205.  
  206. END
  207.  
  208. FETCH NEXT FROM CURSOR_FIXTURE INTO @Pais2, @Orden2
  209. END
  210. CLOSE CURSOR_FIXTURE
  211. DEALLOCATE CURSOR_FIXTURE
  212.  
  213. FETCH NEXT FROM CURSOR_PAISES INTO @Grupo, @Pais1, @Orden1
  214. END
  215. CLOSE CURSOR_PAISES
  216. DEALLOCATE CURSOR_PAISES
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement