Consulta SQL ??????
Publicado por JB (9 intervenciones) el 25/05/2005 14:21:11
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 situacion es la siguiente: tengo que crear una consulta que me de los promedios de un trimestre (tres meses Febrero - Marzo - Abril), hasta el momento tengo 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 desplegar los datos dentron de la pagina utilizando lo siguiente:
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 estoy quiendo saber si hay alguna forma de decirle a la consulta que se haga el "union" pero la haga como horizontal para que al momento de crear el "while" pueda encontar las demas columnas...
Por el momento se tiene esto:
------------------------------
materia - promedio1
------------------------------
Me lista el primer bloque de datos del mes de febrero.
Luego del segundo bloque de datos del mes de marzo
y por ultimo el bloque de datos del mes de abril
Por que busque que quede esta manera:
---------------------------------------------------------------------
Materias - Promedio1 - Promedio2 - Promedio3
Febrero Marzo Abril
---------------------------------------------------------------------
Entonces al momento de crear el "while" si encontraria tres columnas que mostrar....
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 situacion es la siguiente: tengo que crear una consulta que me de los promedios de un trimestre (tres meses Febrero - Marzo - Abril), hasta el momento tengo 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 desplegar los datos dentron de la pagina utilizando lo siguiente:
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 estoy quiendo saber si hay alguna forma de decirle a la consulta que se haga el "union" pero la haga como horizontal para que al momento de crear el "while" pueda encontar las demas columnas...
Por el momento se tiene esto:
------------------------------
materia - promedio1
------------------------------
Me lista el primer bloque de datos del mes de febrero.
Luego del segundo bloque de datos del mes de marzo
y por ultimo el bloque de datos del mes de abril
Por que busque que quede esta manera:
---------------------------------------------------------------------
Materias - Promedio1 - Promedio2 - Promedio3
Febrero Marzo Abril
---------------------------------------------------------------------
Entonces al momento de crear el "while" si encontraria tres columnas que mostrar....
Valora esta pregunta


0