Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- UPDATE A
- SET Grupo = B.Grupo
- FROM
- Clasificado A
- INNER JOIN (
- SELECT
- X.IdPais,
- CASE X.Orden % 8
- WHEN 0 THEN 'A'
- WHEN 1 THEN 'B'
- WHEN 2 THEN 'C'
- WHEN 3 THEN 'D'
- WHEN 4 THEN 'E'
- WHEN 5 THEN 'F'
- WHEN 6 THEN 'G'
- WHEN 7 THEN 'H'
- END AS Grupo
- FROM
- (
- SELECT
- IdPais,
- ROW_NUMBER()OVER(ORDER BY NEWID()) AS Orden
- FROM
- Clasificado
- WHERE
- Grupo IS NULL
- ) X
- ) B ON A.IdPais = B.IdPais
- DECLARE @Grupo CHAR(1)
- DECLARE @Pais1 VARCHAR(100)
- DECLARE @Pais2 VARCHAR(100)
- DECLARE @Orden1 INT
- DECLARE @Orden2 INT
- DECLARE @fecha VARCHAR(19)
- DECLARE @hora VARCHAR(8)
- TRUNCATE TABLE Fixture
- DECLARE CURSOR_PAISES CURSOR STATIC FORWARD_ONLY FOR
- SELECT
- A.Grupo,
- B.Pais,
- ROW_NUMBER()OVER(PARTITION BY A.Grupo ORDER BY Cabeza DESC) AS Orden
- FROM
- Clasificado A
- INNER JOIN Pais B ON A.IdPais = B.IdPais
- OPEN CURSOR_PAISES
- FETCH NEXT FROM CURSOR_PAISES INTO @Grupo, @Pais1, @Orden1
- WHILE @@FETCH_STATUS = 0
- BEGIN
- DECLARE @aleatario FLOAT
- SET @aleatario = RAND()
- DECLARE CURSOR_FIXTURE CURSOR STATIC FORWARD_ONLY FOR
- SELECT
- X.Pais, X.Orden
- FROM
- (
- SELECT
- A.Grupo,
- B.Pais,
- ROW_NUMBER()OVER(PARTITION BY A.Grupo ORDER BY Cabeza DESC) AS Orden
- FROM
- Clasificado A
- INNER JOIN Pais B ON A.IdPais = B.IdPais
- ) X
- WHERE
- X.Orden > @Orden1
- AND X.Grupo = @Grupo
- OPEN CURSOR_FIXTURE
- FETCH NEXT FROM CURSOR_FIXTURE INTO @Pais2, @Orden2
- WHILE @@FETCH_STATUS = 0
- BEGIN
- SET @fecha = '2022-06-15'
- DECLARE @hora2 FLOAT
- SET @hora2 = RAND() * 3
- IF(@hora2 < 1)
- BEGIN
- SET @hora = '10:00:00'
- END
- ELSE
- BEGIN
- IF(@hora2 < 2)
- BEGIN
- SET @hora = '13:00:00'
- END
- ELSE
- BEGIN
- SET @hora = '15:00:00'
- END
- END
- SET @fecha = @fecha + ' ' + @hora
- IF(@Grupo ='A')
- BEGIN
- SET @fecha = CONVERT(VARCHAR(19), DATEADD(day, 0, CONVERT(DATETIME, @fecha, 121)))
- END
- IF(@Grupo ='B')
- BEGIN
- SET @fecha = CONVERT(VARCHAR(19), DATEADD(day, 1, CONVERT(DATETIME, @fecha, 121)))
- END
- IF(@Grupo ='C')
- BEGIN
- SET @fecha = CONVERT(VARCHAR(19), DATEADD(day, 2, CONVERT(DATETIME, @fecha, 121)))
- END
- IF(@Grupo ='D')
- BEGIN
- SET @fecha = CONVERT(VARCHAR(19), DATEADD(day, 3, CONVERT(DATETIME, @fecha, 121)))
- END
- IF(@Grupo ='E')
- BEGIN
- SET @fecha = CONVERT(VARCHAR(19), DATEADD(day, 4, CONVERT(DATETIME, @fecha, 121)))
- END
- IF(@Grupo ='F')
- BEGIN
- SET @fecha = CONVERT(VARCHAR(19), DATEADD(day, 5, CONVERT(DATETIME, @fecha, 121)))
- END
- IF(@Grupo ='G')
- BEGIN
- SET @fecha = CONVERT(VARCHAR(19), DATEADD(day, 6, CONVERT(DATETIME, @fecha, 121)))
- END
- IF(@Grupo ='H')
- BEGIN
- SET @fecha = CONVERT(VARCHAR(19), DATEADD(day, 7, CONVERT(DATETIME, @fecha, 121)))
- END
- PRINT @fecha
- IF(@Orden1 = 1 AND @Orden2 = 2)
- BEGIN
- INSERT INTO Fixture(Grupo, PaisLocal, PaisVisita, Fecha) VALUES (@Grupo, @Pais1, @Pais2, @fecha)
- END
- IF(@aleatario < 0.5)
- BEGIN
- IF(@Orden1 = 1 AND @Orden2 = 3)
- BEGIN
- INSERT INTO Fixture(Grupo, PaisLocal, PaisVisita, Fecha) VALUES (@Grupo, @Pais1, @Pais2, DATEADD(DAY, 2, CONVERT(DATETIME, @fecha)))
- END
- IF(@Orden1 = 1 AND @Orden2 = 4)
- BEGIN
- INSERT INTO Fixture(Grupo, PaisLocal, PaisVisita, Fecha) VALUES (@Grupo, @Pais2, @Pais1, DATEADD(DAY, 4, CONVERT(DATETIME, @fecha)))
- END
- IF(@Orden1 = 2 AND @Orden2 = 3)
- BEGIN
- INSERT INTO Fixture(Grupo, PaisLocal, PaisVisita, Fecha) VALUES (@Grupo, @Pais2, @Pais1, DATEADD(DAY, 4, CONVERT(DATETIME, @fecha)))
- END
- IF(@Orden1 = 2 AND @Orden2 = 4)
- BEGIN
- INSERT INTO Fixture(Grupo, PaisLocal, PaisVisita, Fecha) VALUES (@Grupo, @Pais1, @Pais2, DATEADD(DAY, 2, CONVERT(DATETIME, @fecha)))
- END
- IF(@Orden1 = 3 AND @Orden2 = 4)
- BEGIN
- INSERT INTO Fixture(Grupo, PaisLocal, PaisVisita, Fecha) VALUES (@Grupo, @Pais1, @Pais2, DATEADD(DAY, 0, CONVERT(DATETIME, @fecha)))
- END
- END
- ELSE
- BEGIN
- IF(@Orden1 = 1 AND @Orden2 = 3)
- BEGIN
- INSERT INTO Fixture(Grupo, PaisLocal, PaisVisita, Fecha) VALUES (@Grupo, @Pais2, @Pais1, DATEADD(DAY, 2, CONVERT(DATETIME, @fecha)))
- END
- IF(@Orden1 = 1 AND @Orden2 = 4)
- BEGIN
- INSERT INTO Fixture(Grupo, PaisLocal, PaisVisita, Fecha) VALUES (@Grupo, @Pais2, @Pais1, DATEADD(DAY, 4, CONVERT(DATETIME, @fecha)))
- END
- IF(@Orden1 = 2 AND @Orden2 = 3)
- BEGIN
- INSERT INTO Fixture(Grupo, PaisLocal, PaisVisita, Fecha) VALUES (@Grupo, @Pais1, @Pais2, DATEADD(DAY, 4, CONVERT(DATETIME, @fecha)))
- END
- IF(@Orden1 = 2 AND @Orden2 = 4)
- BEGIN
- INSERT INTO Fixture(Grupo, PaisLocal, PaisVisita, Fecha) VALUES (@Grupo, @Pais1, @Pais2, DATEADD(DAY, 2, CONVERT(DATETIME, @fecha)))
- END
- IF(@Orden1 = 3 AND @Orden2 = 4)
- BEGIN
- INSERT INTO Fixture(Grupo, PaisLocal, PaisVisita, Fecha) VALUES (@Grupo, @Pais2, @Pais1, DATEADD(DAY, 0, CONVERT(DATETIME, @fecha)))
- END
- END
- FETCH NEXT FROM CURSOR_FIXTURE INTO @Pais2, @Orden2
- END
- CLOSE CURSOR_FIXTURE
- DEALLOCATE CURSOR_FIXTURE
- FETCH NEXT FROM CURSOR_PAISES INTO @Grupo, @Pais1, @Orden1
- END
- CLOSE CURSOR_PAISES
- DEALLOCATE CURSOR_PAISES
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement