67 - Subconsulta (insert) |
Un comercio que vende artículos de librería y papelería almacena la información de sus ventas en una tabla llamada "facturas" y otra "clientes". 1-Cree las tablas: create table clientes( codigo serial, nombre varchar(30), domicilio varchar(30), primary key(codigo) ); create table facturas( numero int not null, fecha date, codigocliente int not null, total decimal(6,2), primary key(numero) ); 2-Ingrese algunos registros: insert into clientes(nombre,domicilio) values('Juan Lopez','Colon 123'); insert into clientes(nombre,domicilio) values('Luis Torres','Sucre 987'); insert into clientes(nombre,domicilio) values('Ana Garcia','Sarmiento 576'); insert into clientes(nombre,domicilio) values('Susana Molina','San Martin 555'); insert into facturas values(1200,'2017-01-15',1,300); insert into facturas values(1201,'2017-01-15',2,550); insert into facturas values(1202,'2017-01-15',3,150); insert into facturas values(1300,'2017-01-20',1,350); insert into facturas values(1310,'2017-01-22',3,100); 3- El comercio necesita una tabla llamada "clientespref" en la cual quiere almacenar el nombre y domicilio de aquellos clientes que han comprado hasta el momento más de 500 pesos en mercaderías. Créela la tabla: create table clientespref( nombre varchar(30), domicilio varchar(30) ); 4- Ingrese los registros en la tabla "clientespref" seleccionando registros de la tabla "clientes" y "facturas". 5- Vea los registros de "clientespref":Ver solución
drop table if exists clientes; drop table if exists facturas; create table clientes( codigo serial, nombre varchar(30), domicilio varchar(30), primary key(codigo) ); create table facturas( numero int not null, fecha date, codigocliente int not null, total decimal(6,2), primary key(numero) ); insert into clientes(nombre,domicilio) values('Juan Lopez','Colon 123'); insert into clientes(nombre,domicilio) values('Luis Torres','Sucre 987'); insert into clientes(nombre,domicilio) values('Ana Garcia','Sarmiento 576'); insert into clientes(nombre,domicilio) values('Susana Molina','San Martin 555'); insert into facturas values(1200,'2017-01-15',1,300); insert into facturas values(1201,'2017-01-15',2,550); insert into facturas values(1202,'2017-01-15',3,150); insert into facturas values(1300,'2017-01-20',1,350); insert into facturas values(1310,'2017-01-22',3,100); create table clientespref( nombre varchar(30), domicilio varchar(30) ); insert into clientespref select nombre,domicilio from clientes where codigo in (select codigocliente from clientes as c join facturas as f on codigocliente=codigo group by codigocliente having sum(total)>500); select *from clientespref;