Consulta usando 2 Case con alias
Publicado por Ruben Dario (8 intervenciones) el 23/07/2017 05:17:26
Buenas noches amigo, como estan, necesito que por favor me echen una mano en cuanto a una consulta, estoy tengo una tabla pagos donde tengo un campo statuspago donde los meses pagados tienen status 1 y los vencidos status 2, lo que estoy tratando de en una sola consulta poder obtener los meses pagados y vencidos, para ello estoy tratando con CASE WHEN THEN END, segun lo que e leido no se debe de colocar el alias dentro del CASE....END sino despues del END, lo e trabajado de la siguiente manera y solo me funciona el primer CASE el de meses pagados

1
2
3
4
5
6
7
8
$sql ="SELECT est.codest AS id, GROUP_CONCAT(DISTINCT est.cedest) AS cedula, GROUP_CONCAT(DISTINCT est.pnomest) AS pNombre, GROUP_CONCAT(DISTINCT est.snomest) AS sNombre, GROUP_CONCAT(DISTINCT est.papeest) AS pApellido, GROUP_CONCAT(DISTINCT est.sapeest) AS sApellido, COUNT(pag.mespago) AS totalpagad,
CASE pag.statuspago
WHEN 1 THEN GROUP_CONCAT(DISTINCT pag.mespago SEPARATOR ', ') END AS meses,
CASE pag.statuspago
WHEN 2 THEN GROUP_CONCAT(DISTINCT pag.mespago SEPARATOR ', ') END AS mesesvenc,
pag.becado, pag.montopago, pag.codnivel, pag.codgrado, pag.codturno, pag.codperiodo, pagospormora.cantmora, niveles.nivel, grados.grado, grados.seccion, turnos.turno, padres.cedpadre, padres.nompadre, padres.apepadre, periodoescolar.periodo, periodoescolar.mesesactivos, periodoescolar.interesmora FROM estudiantes est INNER JOIN pagos pag ON est.codest = pag.codest INNER JOIN padres ON padres.cedpadre = est.cedpadre INNER JOIN turnos ON turnos.codturno = pag.codturno INNER JOIN niveles ON niveles.codnivel = pag.codnivel INNER JOIN grados ON grados.codgrado = pag.codgrado INNER JOIN periodoescolar ON periodoescolar.codperiodo = pag.codperiodo LEFT JOIN pagospormora ON pagospormora.numcomprobante = pag.numcomprobante WHERE est.cedest = ? AND pag.codperiodo = ? AND (pag.statuspago = '1' OR pag.statuspago = '2') GROUP BY id";

Valora esta pregunta


0