Combinar dos resultados (2 consultas SQL)
Publicado por Adrian (5 intervenciones) el 19/06/2015 05:17:54
Buenas, necesito ayuda con la union en un solo array de dos consultas:
En una consulta logro relacionar las inasistencias de alumnos en un trimestre:
Luego en una parte del codigo tengo como resultado a un alumno/cadete con premio por cumplir con otras consultas:
Trate de unir ambas consultas con INNER JOIN pero me tira error, como deberia manejar ambas consultas para combinarlas asi:
----ERROR-------
NECESITO LO SIGUIENTE:
En una consulta logro relacionar las inasistencias de alumnos en un trimestre:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
$sSqlAsistencia =
" SELECT
ca.idcadete,
coalesce(sum(i.cantidad),0) as cantidad
FROM
cadetes ca,
cursos c,
cursos_cadetes cc
left join inasistencias i on i.fk_idcurso = cc.fk_idcurso and i.fk_idcadete = cc.fk_idcadete
WHERE
c.habilitado = true
and ca.habilitado = true
and c.fk_idanolectivo = ".$aAnoLectivoBuscar."
and c.fk_idano = ".$aAnoBuscar."
and c.fk_iddivision = ".$aDivisionBuscar."
and cc.fk_idcurso = c.idcurso
and cc.fk_idcadete = ca.idcadete
and (EXTRACT(MONTH FROM i.fecha) in ".$trimestre ." or i.cantidad is null)
GROUP BY
ca.idcadete
";
$sSqlInasistencia = $oDB->Query($sSqlAsistencia);
1
2
3
4
5
idcadete | cantidad
--------------------------
203 | 4
305 | 0
120 | 10
Luego en una parte del codigo tengo como resultado a un alumno/cadete con premio por cumplir con otras consultas:
1
2
3
4
5
6
7
8
9
10
$sSql = " SELECT idcadete, nombre, apellido, matricula
FROM cadetes
WHERE idcadete in
(" . $sSqlPromedioEnCadaMateria . " INTERSECT " . $sSqlPromedioConducta;
if (strlen($aPromedioGeneralEdFisicaMayorABuscar)) {
$sSql .= " INTERSECT " . $sSqlPromedioEnEdFisica;
}
$sSql .= ")";`
$rsCadetesConPremio=$oDB->query($sSql);
1
2
3
idcadete| nombre | apellido | matricula
----------------------------------------------------
203 | adrian | perez | 212121
Trate de unir ambas consultas con INNER JOIN pero me tira error, como deberia manejar ambas consultas para combinarlas asi:
1
2
3
$premio = " SELECT a.idcadete, a.nombre, a.apellido, a.matricula, b.cantidad
FROM ".$rsCadetesConPremio."a inner join ".$sSqlInasistencia."b on a.idcadete = b.idcadete
ORDER BY a.idcadete";
NECESITO LO SIGUIENTE:
1
2
3
idcadete| nombre | apellido | matricula| cantidad
-----------------------------------------------------------------`
203 | adrian | perez | 212121 | 4
Valora esta pregunta


0