Ver Mensaje Individual
  #7 (permalink)  
Antiguo 25/04/2014, 11:13
Avatar de temerariomalaga
temerariomalaga
 
Fecha de Ingreso: marzo-2013
Ubicación: Londres
Mensajes: 156
Antigüedad: 11 años, 1 mes
Puntos: 9
Respuesta: Consulta no funciona correctamente

He cojido papel y lápiz y he reestructurado todo y lo he simplificado mycho, funcionando ahora todo a la perfección. Ahora tendria TEMP que son todos los arbitros disponibles, TEMP3 que son los que tienen partido un dia distinto, TEMP4 los que tienen el mismo dia y a raiz de TEMP4 saco TEMP5 que son los que cumplen la diferencia horaria y TEMP6 que son los que no. Teniendo esto ahora todo es mucho más sencillo porque solo tengo que obtener los arbitros disponibles (TEMP) y excluir a los que no cumplen la diferencia horaria (TEMP6).
Todo esto dejo aquí el código para que veas que nos hemos comido demasiado la cabeza los dos. De todas formas muchas gracias por tu ayuda @quimfv
Código MySQL:
Ver original
  1. SELECT COUNT(*) INTO @regs FROM EQUIPO_ARBITRAL WHERE Codigo_arbitro IN (SELECT * FROM TEMP) AND Codigo_arbitro NOT IN(SELECT codigo FROM TEMP6) AND Cod_localidad=
  2.                 (SELECT Codigo_localidad FROM PABELLON WHERE Codigo_pabellon=pabellon) ORDER BY Apellidos;
  3.     IF(SELECT @regs)>=3 THEN
  4.         SELECT Codigo_arbitro AS 'Cod_arbi', Licencia AS 'Licenc', Nombre AS 'Nom', Apellidos AS 'Ape' FROM EQUIPO_ARBITRAL WHERE Codigo_arbitro IN
  5.             (SELECT * FROM TEMP) AND Codigo_arbitro NOT IN(SELECT codigo FROM TEMP6) AND Cod_localidad=
  6.                     (SELECT Codigo_localidad FROM PABELLON WHERE Codigo_pabellon=pabellon) ORDER BY Apellidos;
  7.     ELSE
  8.         SELECT COUNT(*) INTO @regs2 FROM EQUIPO_ARBITRAL WHERE Codigo_arbitro IN (SELECT * FROM TEMP) AND Codigo_arbitro NOT IN(SELECT codigo FROM TEMP6) AND Cod_localidad IN
  9.             (SELECT Codigo_localidad FROM LOCALIDAD WHERE Codigo_sede=(SELECT SEDE.Codigo_sede FROM PABELLON INNER JOIN LOCALIDAD ON PABELLON.Codigo_localidad=LOCALIDAD.Codigo_localidad
  10.                 INNER JOIN SEDE ON LOCALIDAD.Codigo_sede=SEDE.Codigo_sede
  11.                     WHERE Codigo_pabellon=pabellon)) ORDER BY Apellidos;
  12.         IF(SELECT @regs2)>=3 THEN
  13.             SELECT Codigo_arbitro AS 'Cod_arbi', Licencia AS 'Licenc', Nombre AS 'Nom', Apellidos AS 'Ape' FROM EQUIPO_ARBITRAL WHERE Codigo_arbitro IN
  14.                 (SELECT * FROM TEMP) AND Codigo_arbitro NOT IN(SELECT codigo FROM TEMP6) AND Cod_localidad IN
  15.                     (SELECT Codigo_localidad FROM LOCALIDAD WHERE Codigo_sede=(SELECT SEDE.Codigo_sede FROM PABELLON INNER JOIN LOCALIDAD ON PABELLON.Codigo_localidad=LOCALIDAD.Codigo_localidad
  16.                         INNER JOIN SEDE ON LOCALIDAD.Codigo_sede=SEDE.Codigo_sede
  17.                             WHERE Codigo_pabellon=pabellon)) ORDER BY Apellidos;
  18.         ELSE
  19.             SELECT Codigo_arbitro AS 'Cod_arbi', Licencia AS 'Licenc', Nombre AS 'Nom', Apellidos AS 'Ape' FROM EQUIPO_ARBITRAL WHERE Codigo_arbitro IN (SELECT * FROM TEMP) AND Codigo_arbitro NOT IN(SELECT codigo FROM TEMP6);
  20.         END IF;
  21.     END IF;
__________________
Málaga Club de Fútbol: Memoria, Compromiso, Fe