Ver Mensaje Individual
  #17 (permalink)  
Antiguo 25/07/2017, 20:38
elsaiya
 
Fecha de Ingreso: marzo-2012
Ubicación: El Vigia Edo Merida
Mensajes: 147
Antigüedad: 12 años, 1 mes
Puntos: 1
Respuesta: Consulta usando Swhit de mysql

Bueno amigo en verdad muchas gracias, ya pude solucionar el problema que tenia, era volver a tomar la tabla pagos, ya me funciono como queria, la consulta final me quedo de esta manera

Código PHP:
Ver original
  1. $sql ="SELECT
  2.       est.codest id,
  3.       est.cedest cedula,
  4.       est.pnomest pNombre,
  5.       est.snomest sNombre,
  6.       est.papeest pApellido,
  7.       est.sapeest sApellido,
  8.        padres.cedpadre,
  9.        padres.nompadre,
  10.        padres.apepadre,
  11.        pagos.becado,
  12.        pagos.montopago,
  13.        pagos.codnivel,
  14.        pagos.codseccion,
  15.        pagos.codturno,
  16.        pagos.codperiodo,
  17.        periodoescolar.periodo,
  18.        periodoescolar.mesesactivos,
  19.        periodoescolar.interesmora,
  20.        pagospormora.cantmora,
  21.        niveles.nivel,
  22.        grados.grado,
  23.        secciones.seccion,
  24.        turnos.turno,
  25.       pag.mesespag,
  26.       pag.totalpagad,
  27.       venc.mesesvenc,
  28.       venc.totalvenc
  29.     FROM
  30.       estudiantes est
  31.     LEFT JOIN
  32.       ( SELECT
  33.           codest, COUNT(mespago) AS totalpagad,
  34.           CASE WHEN statuspago = 1 THEN GROUP_CONCAT(DISTINCT mespago SEPARATOR ', ') END mesespag
  35.         FROM  pagos
  36.         WHERE statuspago = '1'
  37.         GROUP BY codest ) pag ON pag.codest = est.codest
  38.     LEFT JOIN
  39.       ( SELECT
  40.           codest, COUNT(mespago) AS totalvenc,
  41.           CASE WHEN statuspago = 2 THEN GROUP_CONCAT(DISTINCT mespago SEPARATOR ', ') END mesesvenc
  42.         FROM pagos
  43.         WHERE statuspago = '2'
  44.         GROUP BY codest ) venc ON venc.codest = est.codest
  45.          INNER JOIN padres ON padres.cedpadre = est.cedpadre
  46.          INNER JOIN pagos ON est.codest = pagos.codest
  47.          INNER JOIN turnos ON turnos.codturno = pagos.codturno
  48.          INNER JOIN niveles ON niveles.codnivel = pagos.codnivel
  49.          INNER JOIN secciones ON secciones.codseccion = pagos.codseccion
  50.          INNER JOIN grados ON grados.codgrado = secciones.codgrado
  51.          INNER JOIN periodoescolar ON periodoescolar.codperiodo = pagos.codperiodo
  52.          LEFT JOIN pagospormora ON pagospormora.numcomprobante = pagos.numcomprobante
  53.          WHERE est.cedest = ? AND pagos.codperiodo = ? GROUP BY id";