Necesito ayuda con un SELECT...UNION
Publicado por JB (9 intervenciones) el 23/05/2005 13:10:09
Hola a tod@s...
Bueno mi problema es el siguiente tengo una base de datos con un tabla la cual me almacena los siguientes campos:
idnotas,materia,mes,alumno,grado,año,seccion,turno,lab1,lab2,lab3,lab4
La cosa esta asi: tengo que crear una consulta que me de los promedios de un trimestre (tres meses Febrero - Marzo - Abril), yo cree el siguiente query.
SELECT materia,(lab1+lab2+lab3+lab4)/4 As promedio1
FROM notas
WHERE mes="Febrero" And [todas las condiciones que siguen]..
UNION
SELECT materia,(lab1+lab2+lab3+lab4)/4 As promedio2
FROM notas
WHERE mes="Marzo" And [todas las condiciones que siguen]..
UNION
SELECT materia,(lab1+lab2+lab3+lab4)/4 As promedio3
FROM notas
WHERE mes="Abril" And [todas las condiciones que siguen]..
Me lista la consulta perfectamente; PERO en forma vertical, por lo que cuando yo estoy queriendo dentron de la pagina crear el
while (row_fetch_array($consulta)){
echo'
<td>'.$row["materia"].'</td><td>'.$row["promedio1"].'</td>';
}
Aun que le cambie el nombre al promedio y le ponga "promedio1" siempre me lista todos por que todos aparecen en una sola linea, por la forma vertical y no me reconoce los demas campos, ya que si le pongo "promedio2" me da un error de "parse" y en otras ocaciones de "sintaxis", por lo que esta quiendo saber si hay alguna forma de decirle a la consulta que se haga la union pero la haga como horizontal para que al momento de crear el "while" pueda encontar las demas columnas...
Bueno mi problema es el siguiente tengo una base de datos con un tabla la cual me almacena los siguientes campos:
idnotas,materia,mes,alumno,grado,año,seccion,turno,lab1,lab2,lab3,lab4
La cosa esta asi: tengo que crear una consulta que me de los promedios de un trimestre (tres meses Febrero - Marzo - Abril), yo cree el siguiente query.
SELECT materia,(lab1+lab2+lab3+lab4)/4 As promedio1
FROM notas
WHERE mes="Febrero" And [todas las condiciones que siguen]..
UNION
SELECT materia,(lab1+lab2+lab3+lab4)/4 As promedio2
FROM notas
WHERE mes="Marzo" And [todas las condiciones que siguen]..
UNION
SELECT materia,(lab1+lab2+lab3+lab4)/4 As promedio3
FROM notas
WHERE mes="Abril" And [todas las condiciones que siguen]..
Me lista la consulta perfectamente; PERO en forma vertical, por lo que cuando yo estoy queriendo dentron de la pagina crear el
while (row_fetch_array($consulta)){
echo'
<td>'.$row["materia"].'</td><td>'.$row["promedio1"].'</td>';
}
Aun que le cambie el nombre al promedio y le ponga "promedio1" siempre me lista todos por que todos aparecen en una sola linea, por la forma vertical y no me reconoce los demas campos, ya que si le pongo "promedio2" me da un error de "parse" y en otras ocaciones de "sintaxis", por lo que esta quiendo saber si hay alguna forma de decirle a la consulta que se haga la union pero la haga como horizontal para que al momento de crear el "while" pueda encontar las demas columnas...
Valora esta pregunta


0