Está en la página 1de 4

PRACTICA 3

SELECT * FROM NOTA;

CREATE TABLE ALUMNOCURSO(

CURSO VARCHAR2(6),

ALUMNO VARCHAR2(8),

PROMEDIO NUMBER(2),

PRIMARY KEY (CURSO, ALUMNO),

FOREIGN KEY (CURSO) REFERENCES CURSO(CURSO),

FOREIGN KEY (ALUMNO) REFERENCES ALUMNO(ALUMNO));

DROP TABLE alumnocurso;

SELECT * FROM ALUMNOCURSO;

--ALUMNOS QUE SOLO DIERON PC1

SELECT * FROM NOTA WHERE TIPO =1 AND NUMEVAL=1;

SELECT * FROM NOTA WHERE TIPO =1 AND NUMEVAL=2;

SELECT * FROM NOTA WHERE TIPO =2 AND CURSO='ADM301' AND NUMEVAL=1;

SELECT * FROM NOTA WHERE TIPO =2 AND CURSO='ADM322' AND NUMEVAL=2;

8.5. Mostrar los alumnos que han aprobado el examen 1.

SELECT * FROM NOTA WHERE TIPO =1 AND NOTA>=11 AND NUMEVAL=1;

8.6. Mostrar los alumnos que tienen alguna nota desaprobada

SELECT * FROM NOTA WHERE NOTA<11 ;

8.7. Mostrar los alumnos que tienen alguna nota aprobada.

SELECT * FROM NOTA WHERE NOTA>11 ;


8.8. Mostrar los cursos que tienen algún examen aprobado.

SELECT DISTINCT CURSO FROM NOTA WHERE TIPO=1 AND NOTA>11;

8.9. Mostrar los cursos que tienen alguna práctica aprobada.

SELECT DISTINCT CURSO FROM NOTA WHERE TIPO=2 AND NOTA<11;

PRACTICA 4

5.1. Mostrar la mejor nota de Trabajo Práctico por cada curso.

SELECT CURSO,MAX(NOTA) FROM NOTA WHERE TIPO=3 GROUP BY CURSO;

5.2. Mostrar el número de alumnos por curso.

SELECT CURSO,COUNT(ALUMNO) FROM NOTA GROUP BY CURSO;

5.3. Mostrar los alumnos invictos.

5.4. Mostrar los alumnos que han aprobado al menos un curso.

SELECT distinct(ALUMNO) FROM ALUMNOCURSO WHERE PROMEDIO>10.5;

5.5. Mostrar el menor promedio del curso ADM322.

SELECT MIN(PROMEDIO) FROM ALUMNOCURSO WHERE CURSO='ADM322'

5.6. ¿Cuántos alumnos hay aprobados en el curso ECO325?

SELECT COUNT(ALUMNO) as Respuesta FROM ALUMNOCURSO WHERE CURSO='ECO325'AND


PROMEDIO>10.5;

5.7. Determinar la cantidad de desaprobados por curso.

SELECT CURSO,COUNT(CURSO) FROM ALUMNOCURSO WHERE PROMEDIO<10.5 GROUP BY


CURSO;

5.8. Determinar los alumnos que tienen algún curso desaprobado.

SELECT DISTINCT(ALUMNO) FROM ALUMNOCURSO WHERE PROMEDIO<10.5;

PRACTICA 5

5.1. Mostrar a los alumnos que no son invictos.

SELECT* FROM WHERE PROMEDIO<11;

5.2. Mostrar a los alumnos con sus promedios ponderados.


//CODIGO PARA LA VISTA PONDERADO

SELECT A.ALUMNO,A.CURSO,A.PROMEDIO,B.CREDITOS FROM CURSO B , ALUMNOCURSO A


WHERE A.CURSO=B.CURSO ;

//CODIGO PARA SACAR LOS P_PONDERADOS

SELECT ALUMNO, ((SUM(PROMEDIO*CREDITOS))/SUM(CREDITOS)) AS PONDERADO from


PONDERADO GROUP BY ALUMNO ORDER BY ((SUM(PROMEDIO*CREDITOS))/SUM(CREDITOS))
DESC ;

5.3. Mostrar el mayor promedio ponderado.

SELECT FLOOR(MAX((SUM(PROMEDIO*CREDITOS))/SUM(CREDITOS))) AS MAYORPONDERADO


from PONDERADO GROUP BY ALUMNO ;

5.4. Mostrar a los alumnos invictos.

SELECT alumno, nombre

FROM alumno a

WHERE EXISTS (

SELECT 1 FROM alumnocurso b

WHERE b.alumno = a.alumno

AND b.promedio >= 11);

OTRA FORMA

PARA ESTO CREAMOS 2 VISTAS

SELECT A.ALUMNO ,A.PROMEDIO FROM APROBADOS A LEFT JOIN DESAPROBADOS B ON


A.ALUMNO=B.ALUMNO WHERE B.ALUMNO IS NULL;

5.5. Mostrar los alumnos que han aprobado al menos un curso.

SELECT DISTINCT(ALUMNO) FROM ALUMNOCURSO WHERE PROMEDIO>11 ;

5.6. Determinar los alumnos que están en el tercio superior.

//VISTA CON LOS PONDERADOS ORDENADOS DE MAYOR A MENOR "PONDERADO1"

SELECT ALUMNO, ((SUM(PROMEDIO*CREDITOS))/SUM(CREDITOS)) AS PONDERADO from


PONDERADO GROUP BY ALUMNO ORDER BY ((SUM(PROMEDIO*CREDITOS))/SUM(CREDITOS))
DESC ;

// SELECCIONAR AL TERCIO SUPERIO

SELECT * FROM PONDERADO1 WHERE ROWNUM <=(SELECT COUNT(DISTINCT(ALUMNO))/3


FROM ALUMNOCURSO);

5.7 PARA ESTO CREAMOS 2 VISTAS


SELECT ALUMNO FROM MAYORA INTERSECT SELECT ALUMNO FROM DOSPROMEDIOS;

/////////////////////////////////////////////////////////////////////

SELECT

curso,

alumno,

SUM(CASE

WHEN tipo = '2' AND numeval = 1 THEN nota

WHEN tipo = '1' AND numeval = 2 THEN nota * 3

ELSE nota * 2

END) / 10 AS Nota

FROM nota

WHERE (tipo = '2' AND numeval = 1)

OR (tipo = '1' AND numeval = 1)

OR (tipo = '2' AND numeval = 2)

OR (tipo = '3' AND numeval = 1)

OR (tipo = '1' AND numeval = 2)

group by curso, alumno

ORDER BY alumno

CREATE VIEW ALUMNOCURSO_VW AS

SELECT *FROM ALUMNOCURSO A, PROFESOR P

WHERE P.PROFESOR ='USER';

SELECT A.ALUMNO,A.CURSO,A.PROMEDIO FROM ALUMNOCURSO A,PROFESOR P,CURSO C


WHERE P.PROFESOR='p01' AND C.PROFESOR=P.PROFESOR AND C.CURSO=A.CURSO;

También podría gustarte