Ver Mensaje Individual
  #7 (permalink)  
Antiguo 08/10/2008, 12:34
wolfxmen
 
Fecha de Ingreso: abril-2008
Mensajes: 51
Antigüedad: 16 años
Puntos: 0
Respuesta: Consulta compljea

Cita:
Iniciado por jurena Ver Mensaje
Para esos campos, prueba esta consulta:
Código sql:
Ver original
  1. SELECT a.pnombre, a.snombre, a.papellido, a.sapellido, s.seccion, g.grado, IF( SUM( IF(p.idmes = 1 AND p.estado = 1, 1, 0 ) ) >0, 'X', '' ) AS enero, IF( SUM( IF( p.idmes = 2 AND p.estado = 1, 1, 0 ) ) >0, 'X', '' ) AS febrero,
  2. IF( SUM( IF( p.idmes = 3 AND p.estado = 1, 1, 0 ) ) >0, 'X', '' ) AS marzo,
  3. IF( SUM( IF( p.idmes = 4 AND p.estado = 1, 1, 0 ) ) >0, 'X', '' ) AS abril,
  4. IF( SUM( IF( p.idmes = 5 AND p.estado = 1, 1, 0 ) ) >0, 'X', '' ) AS mayo,
  5. IF( SUM( IF( p.idmes = 6 AND p.estado = 1, 1, 0 ) ) >0, 'X', '' ) AS junio,
  6. IF( SUM( IF( p.idmes = 7 AND p.estado = 1, 1, 0 ) ) >0, 'X', '' ) AS julio,
  7. IF( SUM( IF( p.idmes = 8 AND p.estado = 1, 1, 0 ) ) >0, 'X', '' ) AS agosto,
  8. IF( SUM( IF( p.idmes = 9 AND p.estado = 1, 1, 0 ) ) >0, 'X', '' ) AS septiembre,
  9. IF( SUM( IF( p.idmes = 10 AND p.estado = 1, 1, 0 ) ) >0, 'X', '' ) AS octubre,
  10. IF( SUM( IF( p.idmes = 11 AND p.estado = 1, 1, 0 ) ) >0, 'X', '' ) AS noviembre,
  11. IF( SUM( IF( p.idmes = 12 AND p.estado = 1, 1, 0 ) ) >0, 'X', '' ) AS diciembre
  12.  
  13. FROM alumnos a
  14. INNER JOIN pagos p ON a.idalumno = p.idalumno INNER JOIN secciones s ON a.idseccion = s.idseccion INNER JOIN grados g ON a.idgrado = g.idgrado
  15. WHERE g.idgrado = 2 AND s.idseccion = 1
  16. GROUP BY a.idalumno

Te he puesto el WHERE con el grado y sección. Se trata de una consulta que busca los alumnos con idgrado 2 y con idseccion 1, pero también podrías utilizar el OR para unir y que busque a los alumnos que cumplan una de esas dos condiciones.
Gracias por la informacion Jurena, te comento que le agregue lo que es el ciclo a mi consulta pero cuando la ejecuto no da error lo que suecede es que no me devuelve valores para la consulta Mysql solo lista los campos pero debajo de los mismos no despliega informacion...

te voy a dejar como deje mi consulta talvez tenga un error:

SELECT a.pnombre, a.snombre, a.papellido, a.sapellido, s.seccion, g.grado,
IF( SUM( IF(p.idmes = 1 AND p.estado = 1, 1, 0 ) ) >0, 'X', '' ) AS enero,
IF( SUM( IF( p.idmes = 2 AND p.estado = 1, 1, 0 ) ) >0, 'X', '' ) AS febrero,
IF( SUM( IF( p.idmes = 3 AND p.estado = 1, 1, 0 ) ) >0, 'X', '' ) AS marzo
FROM ciclos, alumnos a INNER JOIN pagos p ON a.idalumno = p.idalumno
INNER JOIN secciones s ON a.idseccion = s.idseccion INNER JOIN grados g ON a.idgrado = g.idgrado
WHERE g.idgrado = 14 AND s.idseccion = 12 and ciclos.idciclo = 2008
GROUP BY a.idalumno;

la consulta si me despliega el informe con los encabezados como yo deseo lo malo es que no despliega informacion de la base de datos ya verifique y en efecto para los alumnos con idseccion 12, e idgrado = 14 e idciclo = 2008 si existe informacion de pagos efectuados...

Por favor podrias verificar si tengo algun error en esta consulta... Gracias por la ayuda que me has estado brindando en este problema que tengo....