18-07-2008, 01:08
Me vienen bochando en gestión de datos, con unos ejercicios realmente locos, como el que puse en desarrollo-f53/desafios-de-programacion-t69-15.html#p6545
Quería ver si alguno me puede orientar, porque esto me parece que va más allá de saber SQL.
Para el primer ejercicio tal vez requieran conocer el modelo de tablas sobre el cual trabajamos (http://gestiondedatos.googlegroups.com/web/DER.pdf). Sino me conformo con que me resuelvan el 2do que es más "interesante".
1) Realice una consulta SQL que muestre las 2 materias con su correspondiente carrera cuya cantidad de desaprobados de final estén en las 2 cantidades distintas mayores de desaprobados cada una, una que tenga la máxima cantidad de desaprobados y la otra que tenga la 2da cantidad de desaprobados máxima siguiente. Además mostrar para estas materias la cantidad de alumnos que alguna vez la cursaron y la variación de aprobados por final entre el año 2007 contra el año 2008.
Ejemplo: Si tenemos los siguientes datos:
- Gestión de Datos, código 'G' tiene 1000 desaprobados totales en su historia.
- Análisis Matemático II, código 'AII', tiene 1000 desaprobados totales en su historia, con 50 aprobados en el 2007 y 60 aprobados en el 2008.
- Sistemas Operativos, código 'SO' tiene 99 desaprobados totales en su historia, con 10 aprobados en el 2007 contra 8 aprobados en el 2008.
- Paradigmas de Programación, código 'PP' tiene 98 desaprobados totales en su historia.
Se debería mostrar solamente:
CARRERA | MATERIA | ALUMNOS_CURSARON | VARIACION_APROBADOS
Sistemas | AII | ############ | 10
Sistemas | SO | ############ | -2
Aclaración: era un ejercicio de SQL, sin funciones raras ni procedimientos ni nada de eso.
2) Hacer una consulta SQL que dada una tabla con legajo y nombre de los alumnos, retorne solamente los legajos, mostrados en 2 columnas.
Ej:
LEGAJO | NOMBRE
1153500 | Malsam
1125845 | Armoa
1165988 | Coca
1154457 | Garmendia
1133657 | Prieto
Devuelve:
LEGAJO1 | LEGAJO2
1153500 | 1125845
1165988 | 1154457
1133657 | NULL
Nota: el operador % devuelve el resto de la división entre 2 números.
Salu2
Lea
Quería ver si alguno me puede orientar, porque esto me parece que va más allá de saber SQL.
Para el primer ejercicio tal vez requieran conocer el modelo de tablas sobre el cual trabajamos (http://gestiondedatos.googlegroups.com/web/DER.pdf). Sino me conformo con que me resuelvan el 2do que es más "interesante".
1) Realice una consulta SQL que muestre las 2 materias con su correspondiente carrera cuya cantidad de desaprobados de final estén en las 2 cantidades distintas mayores de desaprobados cada una, una que tenga la máxima cantidad de desaprobados y la otra que tenga la 2da cantidad de desaprobados máxima siguiente. Además mostrar para estas materias la cantidad de alumnos que alguna vez la cursaron y la variación de aprobados por final entre el año 2007 contra el año 2008.
Ejemplo: Si tenemos los siguientes datos:
- Gestión de Datos, código 'G' tiene 1000 desaprobados totales en su historia.
- Análisis Matemático II, código 'AII', tiene 1000 desaprobados totales en su historia, con 50 aprobados en el 2007 y 60 aprobados en el 2008.
- Sistemas Operativos, código 'SO' tiene 99 desaprobados totales en su historia, con 10 aprobados en el 2007 contra 8 aprobados en el 2008.
- Paradigmas de Programación, código 'PP' tiene 98 desaprobados totales en su historia.
Se debería mostrar solamente:
CARRERA | MATERIA | ALUMNOS_CURSARON | VARIACION_APROBADOS
Sistemas | AII | ############ | 10
Sistemas | SO | ############ | -2
Aclaración: era un ejercicio de SQL, sin funciones raras ni procedimientos ni nada de eso.
2) Hacer una consulta SQL que dada una tabla con legajo y nombre de los alumnos, retorne solamente los legajos, mostrados en 2 columnas.
Ej:
LEGAJO | NOMBRE
1153500 | Malsam
1125845 | Armoa
1165988 | Coca
1154457 | Garmendia
1133657 | Prieto
Devuelve:
LEGAJO1 | LEGAJO2
1153500 | 1125845
1165988 | 1154457
1133657 | NULL
Nota: el operador % devuelve el resto de la división entre 2 números.
Salu2
Lea