0% encontró este documento útil (0 votos)
9 vistas5 páginas

Consultas SQL para Gestión de Proveedores

El documento presenta 13 consultas SQL sobre una base de datos de proveedores. Las consultas obtienen información como piezas no suministradas, piezas suministradas por vendedores específicos, número de vendedores por pieza, piezas más caras y baratas, piezas no inventariadas, detalles y totales de pedidos, vendedores de ciertas provincias, pieza con más vendedores, vendedor con pedido de mayor cuantía, pedidos por vendedor, importe total de pedidos de una provincia, y pedidos con más de una pie

Cargado por

Moriarti
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
9 vistas5 páginas

Consultas SQL para Gestión de Proveedores

El documento presenta 13 consultas SQL sobre una base de datos de proveedores. Las consultas obtienen información como piezas no suministradas, piezas suministradas por vendedores específicos, número de vendedores por pieza, piezas más caras y baratas, piezas no inventariadas, detalles y totales de pedidos, vendedores de ciertas provincias, pieza con más vendedores, vendedor con pedido de mayor cuantía, pedidos por vendedor, importe total de pedidos de una provincia, y pedidos con más de una pie

Cargado por

Moriarti
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

PRÁCTICA UT8

Dada la base de datos proveedores proporcionada en la plataforma ([Link]), realizar las


siguientes consultas:

1. Obtener los números y nombres de pieza que no son suministrados por ningún vendedor.

SELECT numpieza,nompieza
FROM pieza
WHERE numpieza NOT IN(SELECT numpieza FROM preciosum);

2. Número y nombre de las piezas suministradas por los vendedores número 2 y 4 (no
necesariamente las suministran los dos a la vez).

SELECT numpieza,nompieza
FROM pieza
WHERE numpieza IN (SELECT numpieza
FROM preciosum
WHERE numvend IN (2,4));

o también:

SELECT DISTINCT [Link],nompieza


FROM pieza INNER JOIN preciosum ON [Link]=[Link]
WHERE numvend IN (2,4);
3. Obtener el número total de vendedores que suministran cada pieza.
SELECT nompieza, COUNT(*) AS Num_vendedores
FROM pieza INNER JOIN preciosum ON [Link]=[Link]
GROUP BY nompieza;

4. Número y nombre de la(s) pieza(s) más cara(s) y de la(s) más barata(s).


SELECT numpieza,nompieza, preciovent
FROM pieza
WHERE preciovent=(SELECT MAX(preciovent) FROM pieza)
OR preciovent=(SELECT MIN(preciovent) FROM pieza);

5. Nombre y precio de venta de las piezas no inventariadas


SELECT nompieza, preciovent
FROM pieza
WHERE numpieza NOT IN (SELECT numpieza
FROM inventario);

6. Mostrar número y fecha de los pedidos así como el nombre de su vendedor y su importe
total (la suma de los importes de cada una de sus líneas de pedido). Ordenar el resultado por
fecha descendentemente.

SELECT [Link],fecha,nomvend,SUM(cantpedida*preciocompra) AS Tot_ped


FROM pedido p INNER JOIN vendedor v ON [Link]=[Link] INNER JOIN
linped l ON [Link]=[Link]
GROUP BY [Link]
ORDER BY fecha DESC;

7. Mostrar el número y fecha del pedido de menor importe, junto con el nombre de su
vendedor

SELECT [Link],fecha, nomvend, SUM(preciocompra*cantpedida) AS


Importe
FROM linped INNER JOIN pedido ON [Link]=[Link] INNER
JOIN vendedor ON [Link]=[Link]
GROUP BY [Link]
HAVING SUM(preciocompra*cantpedida)<=ALL
SELECT SUM(preciocompra*cantpedida)
FROM linped
GROUP BY numpedido);

8. Mostrar los nombres de los vendedores de Alicante o Asturias, que tengan teléfono y que
vivan en avenidas o que su teléfono acabe en 1.
SELECT nomvend
FROM vendedor
WHERE provincia IN ('Alicante','Asturias') AND telefono IS NOT NULL AND
(direccion LIKE 'Avda%' OR telefono LIKE '%1');

9. Mostrar el nombre de la pieza suministrada por más vendedores

SELECT nompieza
FROM pieza JOIN preciosum ON [Link]=[Link]
GROUP BY nompieza
HAVING COUNT(*) >= ALL (SELECT COUNT(*) FROM preciosum GROUP BY numpieza);

10. Mostrar el nombre del vendedor que hizo el pedido de mayor cuantía.
+------------------+--------------+
| nomvend | Total_Pedido |
+------------------+--------------+
| agapito lafuente | 6115.00 |
+------------------+--------------+

SELECT nomvend, SUM(preciocompra*cantpedida) AS Total_Pedido


FROM linped INNER JOIN pedido ON [Link]=[Link] INNER JOIN
vendedor ON [Link]=[Link]
GROUP BY [Link]
HAVING SUM(preciocompra*cantpedida) >= ALL (SELECT SUM(preciocompra*cantpedida)
FROM linped GROUP BY numpedido);

11. Muestra el nombre de todos los vendedores junto con la cantidad de pedidos realizados.
SELECT nomvend, COUNT([Link]) AS Cant_pedidos
FROM vendedor v LEFT JOIN pedido p ON [Link]=[Link]
GROUP BY nomvend;

12. Muestra el importe total de todos los pedidos realizados por vendedores de la provincia de
Alicante.

SELECT SUM(preciocompra*cantpedida) AS Importe


FROM linped INNER JOIN pedido ON [Link]=[Link] INNER JOIN
vendedor ON [Link]=[Link]
WHERE provincia='alicante';
13. Número y fecha de los pedidos que incluyen más de una pieza.
SELECT [Link], fecha
FROM pedido INNER JOIN linped ON [Link]=[Link]
GROUP BY [Link]
HAVING COUNT(*)>1;

También podría gustarte