PHP - Consulta usando 2 Case con alias

 
Vista:
Imágen de perfil de Ruben Dario
Val: 17
Ha aumentado su posición en 6 puestos en PHP (en relación al último mes)
Gráfica de PHP

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";
capture
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder