Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Consultas a una base de datos de facturas: productos y clientes, Ejercicios de Minería de Datos

Este esquema contiene 12 consultas SQL para obtener información sobre facturas, productos y clientes de una base de datos. Las consultas incluyen la obtención de datos personales de un cliente, listado de productos más baratos y caros, producto más vendido, productos no vendidos, clientes sin facturas, nombres de clientes con ciertos patrones y facturas con un total superior a 134000. Además, se incluyen dos procedimientos almacenados y dos funciones para calcular el total de una factura y el iva de un producto.

Tipo: Ejercicios

2020/2021

Subido el 26/03/2021

carlos-andres-colmenares-suarez
carlos-andres-colmenares-suarez 🇨🇴

1 documento

1 / 12

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
ESQUEMA
1. Consultar el detalle de una factura para un cliente (datos personales del
cliente, número de factura, productos adquiridos, cantidad, precio neto, iva y el
total de la factura)
2. Listar el producto más barato y el producto más caro (dos consultas).
select c.identificacion,c.nombre,c.apellido,c.fech_nacimiento, c.direccion, c.telefono, c.celular,
f.num_factura,p.nombre, a.cantidad, f.precio_neto, f.iva, sum (f.precio_neto + f.iva) as "Total de factura"
from clientes as c join factura as f on c.id = f.id_cliente join facturas_productos as a on f.id = a.id_factura
join productos as p on p.id = a.id_productos where f.id = 29 GROUP BY c.identificacion,c.nombre,c.apellido,
c.fech_nacimiento, c.direccion, c.telefono, c.celular,f.num_factura,p.nombre, a.cantidad, f.precio_neto, f.iva
select nombre, min(precio) from productos GROUP BY nombre;
select nombre, max(precio) from productos GROUP BY nombre;
pf3
pf4
pf5
pf8
pf9
pfa

Vista previa parcial del texto

¡Descarga Consultas a una base de datos de facturas: productos y clientes y más Ejercicios en PDF de Minería de Datos solo en Docsity!

ESQUEMA

  1. Consultar el detalle de una factura para un cliente (datos personales del

cliente, número de factura, productos adquiridos, cantidad, precio neto, iva y el

total de la factura)

  1. Listar el producto más barato y el producto más caro (dos consultas).

select c.identificacion,c.nombre,c.apellido,c.fech_nacimiento, c.direccion, c.telefono, c.celular,

f.num_factura,p.nombre, a.cantidad, f.precio_neto, f.iva, sum (f.precio_neto + f.iva) as "Total de factura"

from clientes as c join factura as f on c.id = f.id_cliente join facturas_productos as a on f.id = a.id_factura

join productos as p on p.id = a.id_productos where f.id = 29 GROUP BY c.identificacion,c.nombre,c.apellido,

c.fech_nacimiento, c.direccion, c.telefono, c.celular,f.num_factura,p.nombre, a.cantidad, f.precio_neto, f.iva select nombre, min(precio) from productos GROUP BY nombre;

select nombre, max(precio) from productos GROUP BY nombre;

  1. Listar el producto más vendido.
  2. Listar los productos que no se han vendido.

select p.nombre,COUNT(id_productos) as "Cantidad del producto mas Vendido"

from facturas_productos as f join productos as p on p.id = f.id_productos

join factura as a on a.id=f.id_factura GROUP BY p.nombre HAVING COUNT(id_productos) > 3

  1. Devuelve un listado de los nombres de los clientes que empiezan por A y

terminan por n y también los nombres que empiezan por P. El listado deberá estar

ordenado alfabéticamente.

select * from clientes where nombre like 'A%' and nombre like '%N' order by nombre ASC

select * from clientes where nombre like 'A%' and nombre like '%N' order by nombre DESC

select * from clientes where nombre like 'P%' order by nombre ASC

  1. Consultar el detalle de una factura para un cliente (datos personales del cliente,

número de factura, productos adquiridos, cantidad, precio neto, iva y el total de la

factura) con subconsulta.

select * from clientes as c join (Select * from factura as f join facturas_productos as a on (f.id = a.id_factura)

join productos as p on (p.id = a.id_productos) ) as h on (c.id = h.id_cliente) where c.id = 11136

  1. Listar los productos que no se han vendido con subconsulta.
  2. Listar los clientes que no tenga factura con subconsulta.

select * from productos as p left join (Select * from facturas_productos as f left join factura as a on a.id=f.id_factura )

as h on (p.id = h.id_productos) where h.cantidad is null

select * from clientes as c left join (select * from factura as f left join facturas_productos as a on f.id = a.id_factura)

as h on (c.id=h.id_cliente) where h.id_cliente is null

10.Crear procedimiento almacenado que me devuelva el precio total de una

factura.

CREATE OR REPLACE FUNCTION total_factura(double precision, double precision)

RETURNS double precision

AS $$

BEGIN

RETURN $1 + $2;

END;

$$ language plpgsql;

SELECT *, total_factura(precio_neto,iva) from factura where num_factura = 1283;

  1. Crear una función que calcule el iva de un producto al 19%

CREATE OR REPLACE FUNCTION ivaproducto(double precision)

RETURNS double precision

AS $$

BEGIN

RETURN $1 * 0.19;

END;

$$ language plpgsql;

SELECT *, ivaproducto (precio) from productos;