Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/06/2013, 13:38
mandygr87
 
Fecha de Ingreso: abril-2013
Mensajes: 82
Antigüedad: 11 años
Puntos: 0
Duda con consultas

Hola, estoy intentando realizar dos consultas que me estan dando un poco de dolor de cabeza.

Mi base de datos es la siguiente.



El usuario introduce el actividad.idactividad y la empresaactividad.tipoempresaactividad.

Yo tengo un calendario en javascript y lo que quiero hacer es deshabilitar los dias que: no hay actividades (los días que hay actividades [lunes, martes, miercoles....] los tengo en diasimpartidos), los días en los que todas las clases que se imparten ese día aparecen en la tabla excepciones para ese día, o los días en los que ya están completas todas las reservas para esas clases.

Estoy teniendo problemas a la hora de realizar la consulta en los dos últimos casos.

Para los días en los que todas las clases que se dan ese día son excepciones, tengo la siguiente consulta:

Código MySQL:
Ver original
  1. SELECT f.dia
  2. FROM clase AS c, excepciones AS e, festivos AS f
  3. WHERE c.idclase = e.idclase
  4. AND c.idactividad = e.idactividad
  5. AND c.idempresaactividad = e.idempresaactividad
  6. AND e.idfestivos = f.idfestivos
  7. AND c.idactividad =\''.$idactividad.'\'
  8. AND c.idempresaactividad
  9. IN (
  10.  
  11. SELECT DISTINCT e.idempresaactividad
  12. FROM empresaactividad AS e, tipoempresaactividad AS t, actividad AS a
  13. WHERE t.idtipoempresaactividad = e.tipoempresaactividad
  14. AND e.idempresaactividad = a.idempresaactividad
  15. AND a.idactividad =\''.$idactividad.'\'
  16. AND t.idtipoempresaactividad =\''.$idtipoempresaactividad.'\'
  17. )

Pero esta consulta me saca los días en los cuales haya por lo menos una clase que este en excepciones, y yo lo que quiero es que me saque los días en las cuales para todas las clases que hay ese día todas ellas estén en excepciones.


Y en la segunda consulta que tengo problemas es en la siguiente:


Código MySQL:
Ver original
  1. SELECT SUM( numeropersonas ) AS totalpersonas, r.idclase, r.idactividad, r.idempresaactividad, r.fechaentrada
  2. FROM reserva AS r, clase AS c
  3. WHERE r.idclase = c.idclase
  4. AND r.idactividad = c.idactividad
  5. AND r.idempresaactividad = c.idempresaactividad
  6. AND r.fechaentrada >  \''.$fechahoy.'\'
  7. GROUP BY r.idclase, r.idactividad, r.idempresaactividad, r.fechaentrada

Con esto en la tabla reservas voy sumando todas las personas que están apuntadas en cada clase posteriores a la fecha de hoy (las pasadas ya no me interesan).

El problema que tengo es que no sé cómo comparar el totalpersonas con el maxpersonas de clase para ver si esa clase ya está completa de personas.


Si alguien me pudiese ayudar se lo agradecería. Perdón por el tocho escrito.