0% encontró este documento útil (0 votos)
82 vistas7 páginas

Consultas SQL para Base de Datos de Ventas

Este documento contiene la descripción de una base de datos de ventas con tablas para productos, proveedores, clientes, facturas de venta y compra, y movimientos de venta y compra. También incluye instrucciones SQL para crear las tablas, insertar datos de prueba, y consultas para obtener diferentes reportes sobre los productos vendidos y comprados.

Cargado por

KarLi JiMenez
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
82 vistas7 páginas

Consultas SQL para Base de Datos de Ventas

Este documento contiene la descripción de una base de datos de ventas con tablas para productos, proveedores, clientes, facturas de venta y compra, y movimientos de venta y compra. También incluye instrucciones SQL para crear las tablas, insertar datos de prueba, y consultas para obtener diferentes reportes sobre los productos vendidos y comprados.

Cargado por

KarLi JiMenez
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

BASE DE DATOS: VENTAS.

CLV MV4 CP5 DRV TEC MOU CDX

PRODUCTO DESCRIPCION MONITOR VGA CPU PENTIUM 166 DRIVE DE 1.44 TECLADO MOUSE CD-ROM

FACVEN NoFAC FECVEN RFCCLI 1 2-ene-98 MKS 2 15-ene-98 RQH 3 31-ene-98 LYT 4 5-feb-98 RQH 5 23-feb-98 LYT

FACCOM PROV FECCOM NoFACC A 2-ene-98 123 B 25-ene464 98 MOVEN NoFAC CLV CANT 1 MV4 1 CP5 2 DRV 3 TEC 3 DRV 3 CDX 4 MV4 4 TEC 5 MOU 5 CP5 PRECIO 1 1990 1 2810 1 245 2 165 2 245 2 830 1 1990 1 165 2 119 1 2810 MOVCOM NOFACC PROV CLV CANT COSTO 123 A MV4 5 1630 123 A CP5 3 2480 123 A DRV 1 210 123 A TEC 2 110 123 A CDX 2 756 464 B MOU 8 97 464 B DRV 3 214 464 B TEC 2 160

TABLAS DE VENTAS. CREATE DATABASE ventas; USE ventas; CREATE TABLE producto ( ClvProd VARCHAR (10) NOT NULL, Descrip VARCHAR (40) NOT NULL, PRIMARY KEY (ClvProd) ) ENGINE=InnoDB;

CREATE TABLE Proveedor( ClvProvee VARCHAR(10) NOT NULL, NombreProvee VARCHAR(50) NOT NULL, PRIMARY KEY(ClvProvee) ) ENGINE=InnoDB; CREATE TABLE cliente( RfcCliente VARCHAR(13) NOT NULL, NombreCliente VARCHAR(100) NOT NULL, PRIMARY KEY(RfcCliente) ) ENGINE=InnoDB; CREATE TABLE Faccom ( NfacC INT (6) NOT NULL, ClvProvee VARCHAR(10) NOT NULL, Feccom DATE NOT NULL, PRIMARY KEY(NfacC,ClvProvee), FOREIGN KEY(ClvProvee) REFERENCES proveedor(ClvProvee) ON DELETE RESTRICT ON UPDATE CASCADE ) ENGINE=InnoDB; CREATE TABLE Facven ( NfacV INT (2) NOT NULL, Fecven DATE NOT NULL, RfcCliente VARCHAR (13) NOT NULL, PRIMARY KEY (NfacV), FOREIGN KEY(RfcCliente) REFERENCES cliente(RfcCliente) ON DELETE RESTRICT ON UPDATE CASCADE ) ENGINE=InnoDB;

CREATE TABLE moven ( NfacV INT (2) NOT NULL, ClvProd VARCHAR (10) NOT NULL, Cant INT (5) NOT NULL, PrecioVent DECIMAL (10,2) NOT NULL, PRIMARY KEY (NfacV, ClvProd), FOREIGN KEY (NfacV) REFERENCES Facven (NfacV) ON DELETE RESTRICT ON UPDATE CASCADE, FOREIGN KEY (ClvProd) REFERENCES producto (ClvProd) ON DELETE RESTRICT ON UPDATE CASCADE ) ENGINE=InnoDB; CREATE TABLE movcom ( NfacC INT (6) NOT NULL, ClvProvee VARCHAR (10) NOT NULL, ClvProd VARCHAR (10), Cant INT (5) NOT NULL, PrecioC DECIMAL (10,2) NOT NULL, PRIMARY KEY (NfacC, ClvProvee ,ClvProd ), FOREIGN KEY (NfacC) REFERENCES Faccom (NfacC) ON DELETE RESTRICT ON UPDATE CASCADE, FOREIGN KEY(ClvProvee) REFERENCES proveedor(ClvProvee) ON DELETE RESTRICT ON UPDATE CASCADE, FOREIGN KEY (ClvProd) REFERENCES Producto (ClvProd) ON DELETE RESTRICT ON UPDATE CASCADE ) ENGINE=InnoDB;

INSERCION
-INSERT INTO producto(ClvProd,Descrip) VALUES ('MV4','MONITOR VGA'), ('CP5','CPU PENTIUM 166'), ('DRV','DRIVE DE 1.44'), ('TEC','TECLADO'), ('MOU','MOUSE'), ('CDX','CD-ROM'), ('LKM','CAMARA'); -INSERT INTO proveedor(ClvProvee,NombreProvee) VALUES ('A','SURTIDORA PARA COMPUTO'), ('B','PROVEDORA DE COMPUTO'); -INSERT INTO cliente(RfcCliente,NombreCliente) VALUES ('MKS','MARCOS KIROZ SANTOYO'), ('RQH','RENE QUIONEZ HERNENADEZ'), ('LYT','LAURA YUEZ TOLEDO'); -INSERT INTO Facven(NfacV,Fecven,RfcCliente) VALUES (1,'1998-01-02','MKS'), (2,'1998-01-15','RQH'), (3,'1998-01-31','LYT'), (4,'1998-02-05','RQH'), (5,'1998-02-23','LYT'); -INSERT INTO moven(NfacV,ClvProd,Cant,PrecioVent) VALUES(1,'MV4',1,1990), (1,'CP5',1,2810), (2,'DRV',1,245.00), (3,'TEC',2,165.00), (3,'DRV',2,245.00), (3,'CDX',2,830.00), (4,'MV4',1,1990.00), (4,'TEC',1,165.00), (5,'MOU',2,119.00), (5,'CP5',1,2810.00); -INSERT INTO faccom(NfacC,ClvProvee,Feccom) VALUES(123,'A','1998-01-02'), (464,'B','1998-01-25'); -INSERT INTO movcom(NfacC,ClvProvee,ClvProd,Cant,PrecioC) VALUES(123,'A','MV4',5,1630.00), (123,'A','CP5',3,2480.00), (123,'A','DRV',1,210.00), (123,'A','TEC',2,110.00), (123,'A','CDX',2,756.00),

(464,'B','LKM',3,145.00);

En base a las tablas anteriores escriba las expresiones del algebra relacional que produzcan los resultados pedidos a continuacin 1.- clave, descripcin cantidad, precio, fecha y rfccli de los productos vendidos en una factura x 2.- clave, descripcin cantidad y costo de los productos comprados entre dos fecha f1 y f2 3.- clave, descripcin, cantidad, precio, y fechas de venta de los productos vendidos a un cliente m. 4.- una relacin que contenga clv, descripcin no_fac y precio de los productos que se hubieran vendido en el mes de febrero con un precio menor de $1000 5.- una relacin que contenga clv y descripcin de los productos que tuvieron ventas y compras en todo el ejercicio 6.- una relacin que contenga clv, descripcin de los productos que tuvieron compras pero no ventas en el mes de enero 7.- clave, descripcin, de los producto que hayan sido comprados pero no se halla vendido ninguno NOTA: para hacer tus pruebas puedes tomar los siguientes valores: x =1, f1=1ene-98, f2=15-ene-98

/*1.- clave, descripcin cantidad, precio, fecha y rfc_cli de los productos vendidos en una factura x*/ use ventas; select B.ClvProd, C.Descrip, B.Cant, B.PrecioVent, A.Fecven, A.RfcCliente,A.NfacV from Facven A, moven B, producto C where A.NfacV=1 and A.NfacV=B.NfacV and B.ClvProd=C.ClvProd; /*2 */ use ventas; select A.NfacC, B.ClvProvee, B.NombreProvee, C.ClvProd, D.Descrip, C.Cant,C.PrecioC,A.Feccom from Faccom A, Proveedor B, movcom C, producto D where A.ClvProvee= B.ClvProvee and A.ClvProvee=C.ClvProvee and A.NfacC=C.NfacC and C.ClvProd=D.ClvProd and (A.Feccom>='1998-01-01' and A.Feccom<='1998-01-15');

/*3*/ use ventas; select B.ClvProd, C.Descrip, B.Cant, B.PrecioVent, A.Fecven,A.Nfacv, A.RfcCliente from Facven A, moven B, producto C, cliente D where A.RfcCliente='LYT' and A.Nfacv=B.Nfacv and B.ClvProd=C.ClvProd and A.RfcCliente=D.RfcCliente; /*4*/ use ventas; select B.ClvProd, C.Descrip, B.Cant, B.PrecioVent, A.Fecven,A.NFacv, A.RfcCliente from Facven A, moven B, producto C, cliente D where B.PrecioVent<1000 AND MONTH(A.Fecven)=2 and A.NFacv=B.NFacv and B.ClvProd=C.ClvProd and A.RfcCliente=D.RfcCliente; /* 5 */ use ventas; select distinct B.ClvProd, B.Descrip from moven A, producto B, movcom C where B.ClvProd=A.ClvProd and B.ClvProd=C.ClvProd; /*6*/ use ventas; select A.NFacC, B.ClvProvee, B.NombreProvee, C.ClvProd, D.Descrip, C.Cant,C.PrecioC,A.Feccom from Faccom A, Proveedor B, movcom C, producto D where A.ClvProvee= B.ClvProvee and A.ClvProvee=C.ClvProvee and A.NFacC=C.NFacC and C.ClvProd=D.ClvProd and C.ClvProd in(select N.ClvProd from Facven M, moven N, producto O, cliente P where M.NfacV=N.NfacV and N.ClvProd=O.ClvProd and M.RfcCliente=P.RfcCliente and MONTH(M.Fecven)=2 and (select count(*) from Facven E, moven F, producto G, cliente H where E.NfacV=F.NfacV and F.ClvProd=G.ClvProd and E.RfcCliente=H.RfcCliente and MONTH(E.Fecven)=1 AND N.ClvProd=F.ClvProd)=0);

/*7*/ use ventas; select A.NFacC, B.ClvProvee, B.NombreProvee, C.ClvProd, D.Descrip, C.Cant,C.PrecioC,A.Feccom from Faccom A, proveedor B, movcom C, producto D where A.ClvProvee= B.ClvProvee and A.ClvProvee=C.ClvProvee and A.NFacC=C.NFacC and C.ClvProd=D.ClvProd and (select count(*) from Facven E, moven F, producto G, cliente H where E.NfacV=F.NfacV and F.ClvProd=G.ClvProd and E.RfcCliente=H.RfcCliente AND C.ClvProd=F.ClvProd)=0;

*NOTA: Para esta ltima pregunta, tuvimos que agregar un artculo que no se haya vendido pero si comprado. INSERT INTO producto(ClvProd,Descrip) VALUES ('LKM','CAMARA');

También podría gustarte