Ejercicios Sql
Ejercicios SQL
CASO 1 (problemas resueltos)
FACTURA = { #factura, fecha, cod_cliente }
DETALLE = { #factura, cod_producto, cantidad, importe }
PRODUCTO = { cod_producto, descripción, precio }
CLIENTE = { cod_cliente, razón_social, direccion, teléfono }
1. Listar facturas que tengan más de S/. 1000.00 como total de la compra
SELECT
FROM
GROUP BY
HAVING#factura, SUM(importe)
detalle
#factura
SUM(importe) > 1000
2. Los productos que tienen 100 ó más unidades vendidas en el transcurso del año.
SELECT
FROM
WHERE
GROUP BY
HAVING
detalle.cod_producto, SUM(detalle.cantidad)
detalle, factura
factura.fecha > 01/01/2001
detalle.cod_producto
SUM(detalle.cod_producto) > 100
3. Clientes que más han consumido (los que tienen más de S/. 10,000.00en compras),
ordenados descendentemente.
SELECT
FROM
WHERE
AND
GROUP BY
HAVING
ORDER BY
sum(detalle.importe) AS totalf, cliente.cod_cliente
cliente, factura, detalle
factura.cod_cliente=cliente.cod_cliente
detalle.factura=factura.factura
cliente.cod_cliente
totalf > 10000
totalf desc
CASO 2 (problemas resueltos)
Suponga las tres siguientes relaciones:
VENDEDOR
Nombre
AbelBaker
Jones
Murphy
Zenith
Kobad
ORDEN
Número
100
200
300
400
500
600
700
Edad
63
38
26
42
59
27
Salario
120.000
42.000
36.000
50.000
118.000
34.000
Cliente
Abernathy
Abernathy
Manchester
Amalgamated
Abernathy
Tri-City
Manchester
CLIENTE
Nombre
Abernathy
Manchester
Tri-City
Amalgamated
Ciudad
Willow
Manchester
Memphis
Memphis
VendedorZenith
Jones
Abel
Abel
Murphy
Abel
Jones
Cantidad
560
1800
480
2500
6000
700
150
Tipo_industria
B
F
B
B
Página 1
Base de Datos – BD
Ejercicios SQL
Utilizando sentencias SQL:
1. Muestre las edades y salarios de todos los vendedores
SELECT edad, salario
FROM vendedor
2. Muestre los nombres de todos los vendedores menores de 30 años
SELECT nombre
FROM vendedorWHERE edad < 30
3. Muestre los nombres de todos los vendedores que tiene órdenes con Abernathy
SELECT vendedor
FROM orden
WHERE cliente = “Abernathy”
4. Muestre los nombres y el salario de todos los vendedores que no tengan un pedido con
Abernathy en orden ascendente de salario
SELECT nombre, salario
FROM vendedor
WHERE nombre NOT IN
(SELECT nombre
FROM orden
WHERE cliente =“Abernathy”)
ORDER BY salario ASC
5. Calcule el número de clientes distintos que tienen un pedido
SELECT COUNT(DISTINCT cilente)
FROM orden
6. Calcule la edad promedio de un vendedor
SELECT AVG(edad)
FROM vendedor
7. Calcule el número de pedidos por vendedor
SELECT vendedor, COUNT(*)
FROM orden
GROUP BY vendedor
8. Calcule el número de pedidos por vendedor, considerando sólo pedidos por una cantidadque
exceda de 500
SELECT vendedor, COUNT(*)
FROM orden
WHERE cantidad > 500
GROUP BY vendedor
9. Agrupe los pedidos de cada vendedor y muestre a los vendedores y sus pedidos
acumulados, para aqullos vendedores que tengan pedidos acumulados por una cantidad de más
de 200.000
SELECT vendedor, SUM(cantidad)
FROM orden
GROUP BY vendedor
HAVING SUM(cantidad) > 200.000
Página 2
Basede Datos – BD
Ejercicios SQL
10. Muestre los nombres y las edades de los vendedores que tienen un pedido con Abernathy
en orden descendente de edad
SELECT V.nombre, V.edad
FROM vendedor V, orden O
WHERE V.nombre = O.vendedor
AND O.cliente = “Abernathy”
ORDER BY V.edad DESC
11. Muestre la edad de los vendedores que tienen un pedido con un cliente en Memphis
SELECT V.edad
FROMvendedor V, orden O, cliente C
WHERE V.nombre = O.vendedor
AND O.cliente = C.nombre
AND C.ciudad = ‘Memphis’
12. Muestre el tipo de industria y las edades de los vendedores de todos los pedidos para las
empresas en Memphis
SELECT C.tipo, V.edad
FROM vendedor V, orden O, cliente C
WHERE V.nombre = O.vendedor
AND O.cliente = C.nombre
AND C.ciudad = ‘Memphis’
13. Muestre los nombres de los...
Regístrate para leer el documento completo.