Está en la página 1de 4

GE63 - Informática para los Negocios

PRÁCTICA DE LABORATORIO 02
Ciclo 2018-I
Sección: Todas.
Profesores: Todos.
Duración: 90 minutos.

Indicaciones:
1. No está permitido el uso de ningún material de consulta (manual, guía, cuaderno, etc.)
2. No se permite el uso de teléfonos celulares o cualquier otro aparato electrónico durante el
examen, los cuales deben estar apagados.
-----------------------------------------------------------------------------------------------------------------------------------
Mediante sentencias SQL, de respuesta a las siguientes consultas de BD:

1. Abrir la BD VENTAS y crear las siguientes consultas:


a. Obtener los siguientes datos: nombre de cliente, nombre de producto, fechaventa, precio
unidad, unidades vendidas, importe venta (campo calculado que se obtiene multiplicando
Unidades Vendidas por el Precio unidad). (1 pto)

SELECT C.Nombre,P.NombreProducto,V.FechaVenta,P.PrecioUnidad,V.UnidadesVendidas,
(P.PrecioUnidad*V.UnidadesVendidas) AS ['ImporteVenta']
FROM CLIENTES C, VENTAS V, PRODUCTOS P
WHERE C.CodCliente=V.CodCliente
AND P.CodProducto=V.CodProducto

b. Obtener los datos de la consulta anterior seleccionando sólo los clientes que sean de una
población tecleada. (1 pto)
SELECT C.Nombre,P.NombreProducto,V.FechaVenta,P.PrecioUnidad,V.UnidadesVendidas,
(P.PrecioUnidad*V.UnidadesVendidas) AS ['ImporteVenta']
FROM CLIENTES C, VENTAS V, PRODUCTOS P
WHERE C.CodCliente=V.CodCliente
AND P.CodProducto=V.CodProducto
AND C.Poblacion= X
c. Obtener los siguientes datos: Nombre de producto, Unidades en almacén, Unidades
vendidas, STOCK (campo calculado que se obtiene restando las Unidades Vendidas a
Unidades almacén). (1 pto)

SELECT P.NombreProducto, P.UnidadesEnAlmacen, V.UnidadesVendidas,


(P.UnidadesEnAlmacen-V.UnidadesVendidas) AS ['STOCK']
FROM PRODUCTOS P, VENTAS V
WHERE P.CodProducto=V.CodProducto
2. Utilizando la BD empleados, obtenemos la suma de salario y de comisión por departamento.
Se desea que se muestre también el nombre del departamento. (1 pto)

SELECT D.NOMBRE, SUM(E.SALARIO) AS SalarioTotal, SUM(E.COMISION) AS ComisionTotal,


(SUM(E.SALARIO)+SUM(E.COMISION)) AS ['NuevoSalario']
FROM EMPLEADOS E, DEPARTAMENTOS D
WHERE D.NºDEPART=E.NºDEPART
GROUP BY D.NOMBRE

3. Utilizando la BD LIBROS, obtener las siguientes consultas (realizar también las consultas que se
consideren necesarias para obtener lo que se pide):
a. Los datos de los libros que se compraron entre el 95 y el 97 incluidos, y la editorial
contenga la letra W en el nombre; visualizar Título de libro, autor y editorial. (2 ptos)

SELECT L.TITULO,L.AUTOR,L.EDITORIAL
FROM Libros L
WHERE L.FECHA >=#01/01/1995# AND L.FECHA <= #12/31/1997#
AND L.EDITORIAL LIKE '*W*'

b. Media de precio de aquellos libros cuyo precio sea distinto de 0. (1 pto)

SELECT AVG(L.PRECIO) AS MEDIA_PRECIOS


FROM LIBROS L
WHERE L.PRECIO <> ‘0’

c. Número de libros por tema; visualizar el nombre del TEMA, y el número de libros. (1 pto)

SELECT L.TEMA, SUM (L.UNIDADES) AS NUMERO_LIBROS


FROM LIBROS L
GROUP BY L.TEMA

4. Utilizando la BD ALUMNOS obtener las siguientes consultas (realizar también las consultas que
se consideren necesarias para obtener lo que se pide):
a. La nota máxima d ellos alumnos de la localidad de ALCALÁ DE HENARES; visualizar el
nombre del alumno, el nombre de la asignatura y la nota máxima. (1 pto)

SELECT A.DENOMINACION, AL.NOMBRE


FROM ALUMNOS AL, ASIGNATURAS A, CURSA C
WHERE A.COD_ASIGNATURA=C.COD_ASIGNATURA
AND AL.NUM_MATRICULA=C.NUM_MATRICULA
AND AL.POBLACION LIKE "ALCALÁ DE HENARES"

b. La nota media por asignatura, de aquellas cuyo nombre contenga una 'O'; visualizar el
nombre y la nota media. (1 pto)

SELECT AT.DENOMINACION, AVG(C.NOTA) AS NOTA_MEDIA


FROM ASIGNATURAS AT, CURSA C
WHERE AT.COD_ASIGNATURA=C.COD_ASIGNATURA
AND AT.DENOMINACION LIKE '*O*'
GROUP BY AT.DENOMINACION

c. La nota media por curso, de aquellos que tengan alumnos en la localidad de GUADALAJARA
y el turno sea DIURNO; obtener el código de curso, la descripción y la nota media. (1 pto)

SELECT C.COD_CURSO,C.DESCRIPCION, AVG(CS.NOTA)


FROM ALUMNOS AL, CURSOS C,CURSA CS
WHERE AL.COD_CURSO=C.COD_CURSO AND AL.NUM_MATRICULA=CS.NUM_MATRICULA
AND AL.POBLACION = 'GUADALAJARA' AND C.TURNO='DIURNO'
GROUP BY C.COD_CURSO,C.DESCRIPCION

d. Los nombres de los delegados de los cursos con turno VESPERTINO; visualizar el código del
curso, la descripción y el nombre del delegado. (1 pto)

SELECT C.COD_CURSO,C.DESCRIPCION, C.TURNO,AL.NOMBRE


FROM ALUMNOS AL, CURSOS C,DELEGADOS D
WHERE AL.COD_CURSO=C.COD_CURSO AND D.NUM_MATRICULA=AL.NUM_MATRICULA
AND C.TURNO='VESPERTINO'

e. Los cursos con alumnos matriculados en asignaturas de un TIPO de asignatura leído de


teclado; visualizar el código del curso, la descripción y el tipo de asignatura. (1 pto)
SELECT C.COD_CURSO, C.DESCRIPCION, A.TIPO
FROM CURSOS AS C, ASIGNATURAS AS A, ALUMNOS AS AL, CURSA AS CU
WHERE C.COD_CURSO=AL.COD_CURSO
AND A.COD_ASIGNATURA=CU.COD_ASIGNATURA
AND CU.NUM_MATRICULA=AL.NUM_MATRICULA
AND A.TIPO=X1

5. Utilizando la base de datos ALUMNOS, obtener las siguientes consultas:


a. La nota media por alumno, visualizar el nombre del alumno y la nota media. (1 pto)
SELECT ALUMNOS.NOMBRE, AVG(CURSA.NOTA) AS NOTA_PROMEDIO
FROM ALUMNOS INNER JOIN CURSA
ON ALUMNOS.NUM_MATRICULA = CURSA.NUM_MATRICULA
GROUP BY ALUMNOS.NOMBRE
b. La nota máxima por alumno, visualizar el nombre del alumno, y la nota máxima. (1
pto)
SELECT ALUMNOS.NOMBRE, MAX(CURSA.NOTA) AS NOTA_MAXIMA
FROM ALUMNOS INNER JOIN CURSA ON
ALUMNOS.NUM_MATRICULA = CURSA.NUM_MATRICULA
GROUP BY ALUMNOS.NOMBRE
c. El número de asignaturas por alumno. Visualizar el nombre de la asignatura y el
número de alumnos. (1 pto)
SELECT ASIGNATURAS.DENOMINACION, Count(*) AS N_ALUMNOS
FROM ASIGNATURAS INNER JOIN (ALUMNOS INNER JOIN CURSA
ON ALUMNOS.NUM_MATRICULA=CURSA.NUM_MATRICULA)ON
ASIGNATURAS.COD_ASIGNATURA = CURSA.COD_ASIGNATURA
GROUP BY ASIGNATURAS.DENOMINACION
d. Número de alumnos. (1 pto)
SELECT COUNT(*) AS N_ALUMNOS
FROM ALUMNOS

e. Mostrar nombre del alumno, asignatura, nota del alumno, calificativo. La columna
denominada “Calificativo”, dependerá de los siguientes criterios: (3 ptos)
SELECT AL.NOMBRE, AT.DENOMINACION, C.NOTA, IIF(C.NOTA>=0 AND C.NOTA<=5,
'BAJA_NOTA',IIF(C.NOTA>=6 AND C.NOTA<=8, 'REGULAR', IIF(C.NOTA>=9 AND
C.NOTA<=10, 'EXCELENTE'))) AS CALIFICATIVO
FROM ALUMNOS AL, CURSA C, ASIGNATURAS AT
WHERE AL.NUM_MATRICULA=C.NUM_MATRICULA AND
C.COD_ASIGNATURA=AT.COD_ASIGNATURA

Nota Calificativo
0-5 Baja Nota
6-8 Regular
9-10 Excelente

También podría gustarte