Ver Mensaje Individual
  #4 (permalink)  
Antiguo 30/09/2008, 07:56
jurena
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: Consulta compljea

para una tabla alumno y otra llamada meses

Código sql:
Ver original
  1. SELECT a.nombre, IF( SUM( IF( m.idmes = 1 AND m.ESTADO = 1, 1, 0 ) ) >0, 'X', '' ) AS enero,
  2. IF( SUM( IF(m.idmes = 2 AND m.ESTADO = 1, 1, 0 ) ) >0, 'X', '' ) AS febrero,
  3. IF( SUM( IF(m.idmes = 3 AND m.ESTADO = 1, 1, 0 ) ) >0, 'X', '' ) AS marzo,
  4. IF( SUM( IF(m.idmes = 4 AND m.ESTADO = 1, 1, 0 ) ) >0, 'X', '' ) AS abril,
  5. IF( SUM( IF(m.idmes = 5 AND m.ESTADO = 1, 1, 0 ) ) >0, 'X', '' ) AS mayo,
  6. IF( SUM(IF(m.idmes = 6 AND m.ESTADO = 1, 1, 0 ) ) >0, 'X', '' ) AS junio,
  7. IF( SUM( IF(m.idmes = 7 AND m.ESTADO = 1, 1, 0 ) ) >0, 'X', '' ) AS julio,
  8. IF( SUM( IF(m.idmes = 8 AND m.ESTADO = 1, 1, 0 ) ) >0, 'X', '' ) AS agosto,
  9. IF( SUM( IF(m.idmes = 9 AND m.ESTADO = 1, 1, 0 ) ) >0, 'X', '' ) AS septiembre,
  10. IF( SUM( IF(m.idmes = 10 AND m.ESTADO = 1, 1, 0 ) ) >0, 'X', '' ) AS octubre
  11. FROM `alumno` a INNER JOIN meses m ON a.id = m.idalumno GROUP BY a.id
Por supuesto, si tienes una tabla con los nombres de los meses podrías hacer un GROUP_CONCAT y podrías ofrecer la lista de los meses pagados.

Pero si quieres cruces, puedes usar esta opción.