Questa è la query attuale che assegna le giornate...
Ma non funziona perché salta alcune giornate. L'assegnazione è casuale quindi non posso dire quale combinazioni salta
codice:
'Controllo che per ogni giornata ci siano tutte partite
Do While not Fine = 1
'Recupero tutte le giornate che non hanno tutte le partite
MySql = "SELECT NumGiornata FROM NumeroGiornate WHERE NumGiornata < " & MaxSquadre & " "
MySql = MySql & "AND NumGiornata NOT IN (SELECT NumGiornata FROM CampionatiCalendario Where IdCampionato = " & CmbCampionato & " AND IdGirone = " & CmbGirone & " GROUP BY NumGiornata, IdCampionato, IdGirone HAVING Count(IDSquadra1) = " & Int(CInt(MaxSquadre) / 2) & " AND IdCampionato = " & CmbCampionato & " AND IdGirone = " & CmbGirone & ") "
MySql = MySql & "ORDER BY NumGiornata "
Rs.Open MySql, Conn
IF not Rs.Eof Then
Rs.MoveFirst
Do While not Rs.Eof
'Recupero la partita mancante
MySql = "SELECT TOP 1 * FROM CampionatiCalendario "
MySql = MySql & " WHERE IdSquadra1 NOT IN (SELECT IdSquadra1 FROM CampionatiCalendario WHERE IdCampionato = " & CmbCampionato & " AND IdGirone = " & CmbGirone & " AND NumGiornata = " & Rs("NumGiornata") & " GROUP BY IdSquadra1)"
MySql = MySql & " AND IdSquadra1 NOT IN (SELECT IdSquadra2 FROM CampionatiCalendario WHERE IdCampionato = " & CmbCampionato & " AND IdGirone = " & CmbGirone & " AND NumGiornata = " & Rs("NumGiornata") & " GROUP BY IdSquadra2)"
MySql = MySql & " AND IdSquadra2 NOT IN (SELECT IdSquadra1 FROM CampionatiCalendario WHERE IdCampionato = " & CmbCampionato & " AND IdGirone = " & CmbGirone & " AND NumGiornata = " & Rs("NumGiornata") & " GROUP BY IdSquadra1)"
MySql = MySql & " AND IdSquadra2 NOT IN (SELECT IdSquadra2 FROM CampionatiCalendario WHERE IdCampionato = " & CmbCampionato & " AND IdGirone = " & CmbGirone & " AND NumGiornata = " & Rs("NumGiornata") & " GROUP BY IdSquadra2)"
MySql = MySql & " ORDER BY NumGiornata, IdSquadra2, IdSquadra1 "
Rs2.Open MySql, Conn
IF not Rs2.Eof Then
'Aggiorno la giornata
MySql = "UPDATE CampionatiCalendario SET "
MySql = MySql & "NumGiornata = " & Rs("NumGiornata") & " "
MySql = MySql & "WHERE IdCampionato = " & CmbCampionato & " AND IdGirone = " & CmbGirone & " AND IdSquadra1 = " & Rs2("IdSquadra1") & " AND IdSquadra2 = " & Rs2("IdSquadra2")
Conn.Execute MySql
End IF
Rs2.Close
Rs.MoveNext
Loop
Else
'Fine ciclo
Fine = 1
End IF
Rs.Close
Loop