Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Duda con consultas

Estas en el tema de Duda con consultas en el foro de Mysql en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 04/06/2013, 13:38
 
Fecha de Ingreso: abril-2013
Mensajes: 82
Antigüedad: 11 años, 8 meses
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.
  #2 (permalink)  
Antiguo 04/06/2013, 14:28
 
Fecha de Ingreso: julio-2005
Mensajes: 304
Antigüedad: 19 años, 5 meses
Puntos: 4
Respuesta: Duda con consultas

No se si es posible hacerlo con MySQL pero en el primer caso si lo que quieres es que el calendario te marque el dia de alguna manera al estar todas las clases en excepciones, veo mejor que con el javascript hagas un condicional donde hagas la comparativa de todas las clases, muestre una cosa u otra segun la comparativa.

En el segundo caso ¿es para evitar que se registren más personas de las que la clase puede permitir? en ese caso puedes poner hacer una consulta al intentar entrar en el formulario con un contador, si aún no llega al máximo muestra el formulario, si esta completo muestra un mensaje indicandolo.

Ya te digo que no si es posible con MySQL hacer lo que dices, pero creo que es más cómodo como te indico
__________________
http://www.lynxstyle.net

En la vida como en el ajedrez, hay un reloj que marca el tiempo de cada movimiento, si lo consumes pierde (MJJG)
  #3 (permalink)  
Antiguo 04/06/2013, 16:37
 
Fecha de Ingreso: abril-2013
Mensajes: 82
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Duda con consultas

Gracias por responder, pero lo que busco con esas dos consultas es desactivar los días, de tal forma que en el calendario sólo pueda seleccionar los días en los que sé que voy a poder realizar una reserva.
  #4 (permalink)  
Antiguo 04/06/2013, 16:50
 
Fecha de Ingreso: julio-2005
Mensajes: 304
Antigüedad: 19 años, 5 meses
Puntos: 4
Respuesta: Duda con consultas

seria lo mismo, si cumple una condicion activo y si no desactivo, con el IF ELSE te será más fácil
__________________
http://www.lynxstyle.net

En la vida como en el ajedrez, hay un reloj que marca el tiempo de cada movimiento, si lo consumes pierde (MJJG)

Etiquetas: ayuda!!, consulta-mysql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:05.