jueves, 27 de noviembre de 2014

Taller 2





-- Muestre la información de los proveedores ubicados en la ciudad de Bucaramanga o Cali.


-- or
select * from proveedor
where lower(ciudad) = lower('Bucaramanga') or ciudad='cali';

-- in
select * from proveedor
where lower(ciudad) in ('bucaramanga', 'cali');


--Obtenga la lista de las áreas de venta que estén dedicadas al aseo.


select * from areaventa
where nombre like '%aseo%';


--Muestre la edad que cumplen los empleados en el año 2014.

select nombre, (2014 - extract(year from fechanac)) as "Edad en el 2014" from mercaderista
order by 2, 1;


--Liste los artículos que su precio no está entre 2000 y 3000.

--0 1000 1999 2000 3000 3001 4000 5000

-- Operadores >= <=
select *
from articulo
where precio <2000 or  precio > 3000
order by  precio;

-- between

select *
from articulo
where precio not between 2000 and 3000
order by  precio;


--- Muestre los vendedores que nacieron en el último trimestre del 1967.

-- Extract
select * from vendedor
where extract (year from fechanac) = 1967 and
extract (month from fechanac) between 10 and 12;

---  between
select * from vendedor
where fechanac between '1967-10-01' and '1967-12-31';


-- Muestre la información de pedidos ya sean de alimentos y que el valor del domicilio sea entre 0 y 3000 o
--muestre los pedidos de tecnología y hayan sido realizados en el primer trimestre de 2012.

select * from pedido
where (tipo='alimentos' and valordomicilio between 0 and 3000) or
(tipo = 'tecnologia' and fechaentrega between '2012-01-01' and '2012-03-31');


--. Liste los cajeros nacidos entre 01/01/1985 y el 31/12/1990.

select * from cajero
where fechanac between '01/01/1985' and '31/12/1990';


--  Borre los artículos que tienen en su nombre la palabra polvo y el precio es 2000.


select * from articulo
where nombre like '%polvo%' and precio = 2000;

/*

delete from articulo
where nombre like '%polvo%' and precio = 2000;

*/
-- Joins

-- Muestre el nombre de los vendedores que trabajan en la ciudad de Bogotá.


select s.codigo, v.codsuc, v.nombre
from sucursal s, vendedor v
where s.codigo = v.codsuc and s.ciudad='bogota';


--  La administración desea conocer el nombre y la sucursal donde trabaja el vendedor que realizo
-- una venta de una agenda personal en la ciudad de Barranquilla.

select * from sucursal where ciudad = 'barranquilla';

select * from vendedor where codigo = 23;

select * from venta where codvendedor in (28, 29, 22, 23, 25, 26) and codarticulo = 23;

select * from articulo where nombre = 'agenda personal' ;


select v.nombre, s.ubicacion
from sucursal s, vendedor v, venta ve, articulo a
where s.codigo=v.codsuc and
v.codigo=ve.codvendedor and
a.codigo=ve.codarticulo and
a.nombre = 'agenda personal' and
s.ciudad = 'barranquilla';


--- Mostrar el código y nombre del mercaderista, y cuantos de artículos que promueven dentro de la empresa.

select mercaderista.codigo, mercaderista.nombre, count(articulo.codigo) as "Cantidad de Productos Asigmados"
from mercaderista, articulo
where mercaderista.codigo= articulo.codmerc
group by mercaderista.codigo, mercaderista.nombre
order by 1;

-- Mostrar la cantidad y el nombre de los artículos que tienen un precio mayor a 30.000
--y que su proveedor es de la ciudad de Bucaramanga.

select articulo.nombre, count(articulo.codigo)
from articulo, surte, proveedor
where articulo.codigo=surte.codarticulo and
proveedor.codigo=surte.codprov and articulo.precio>30000 and proveedor.ciudad='bucaramanga'
group by articulo.nombre;



--14. Muestre el nombre del cajero y la sumatorias total de los artículos facturados por los cajeros mostrando solo las mayores o iguales a 300000.

select cajero.codigo, cajero.nombre, sum(articulo.precio)
from cajero, atiende, caja, pago, cliente, compra, articulo
where articulo.codigo=compra.codarticulo and
cliente.codigo = compra.codcli and
cliente.codigo=pago.codcliente and
caja.codigo=pago.codcaja and
caja.codigo=atiende.codcaja and
cajero.codigo=atiende.codcajero
group by cajero.codigo, cajero.nombre
having sum(articulo.precio) > 300000
order by nombre;


--15. Muestre la siguiente información: código y nombre del cliente, cuantos y la sumatoria de los créditos obtenidos.

select cliente.codigo, cliente.nombre, count(credito.codigo) as "Cuantos", sum(credito.valor) as "Sumatoria"
from cliente, credito
where cliente.codigo=credito.codcli
group by cliente.codigo, cliente.nombre
having count(credito.codigo) = 1 or sum(credito.valor) >= 18000;

--16. Muestre el código y el nombre del proveedor y cuantos artículos surte.

select proveedor.codigo, proveedor.nombre, count(distinct articulo.codigo)
from proveedor, surte, articulo
where proveedor.codigo=surte.codprov and
articulo.codigo=surte.codarticulo
group by proveedor.codigo, proveedor.nombre;


--17. Muestre el código y nombre de los departamentos a los que pertenecen más de cuatro artículos.

select departamento.codigo, departamento.nombre, count(articulo.codigo)
from departamento, articulo
where departamento.codigo=articulo.coddpto
group by departamento.codigo, departamento.nombre
having count(articulo.codigo) >4;


--18. Muestre el nombre del cajero y la cantidad total de los artículos vendidos por estos.

select cajero.codigo, cajero.nombre, count(articulo.precio)
from cajero, atiende, caja, pago, cliente, compra, articulo
where articulo.codigo=compra.codarticulo and
cliente.codigo = compra.codcli and
cliente.codigo=pago.codcliente and
caja.codigo=pago.codcaja and
caja.codigo=atiende.codcaja and
cajero.codigo=atiende.codcajero
group by cajero.codigo, cajero.nombre;

--19. Muestre el precio del articulo más alto.


select max(articulo.precio) from articulo;

--20. Muestre el articulo con el valor más alto, según cada departamento.

select departamento.nombre,articulo.nombre,precio
from articulo,departamento
where departamento.codigo=articulo.coddpto
and precio=(select max(articulo.precio)
     from articulo
     where departamento.codigo=articulo.coddpto)
order by departamento.nombre;

--21. Muestre la información del articulo con el valor más alto. Utilizando subconsultas.

select articulo.codigo,articulo.nombre,articulo.precio
from articulo
where precio=(select max(articulo.precio) from articulo);


--22. Escriba los joins necesarios para relacionar todas las tablas del modelo.
/*sucursal.codigo=vendedor.codsuc
vendedor.codigo=venta.codvendedor
articulo.codigo=venta.codarticulo
articulo.codigo=surte.codarticulo
proveedor.codigo=surte.codprov
articulo.codigo=compra.codarticulo
cliente.codigo=compra.codcli
cliente.codigo=premio.codcli
tarjetapremios.codigo=premio.codtarj
cliente.codigo=credito.codcli
cliente.codigo=pedido.codcli
cliente.codigo=pago.codcliente
caja.codigo=pago.codcaja
caja.codigo=atiende.codcaja
cajero.codigo=atiende.codcajero
departamento.codigo=articulo.coddpto
areaventa.codigo=departamento.codarea
mercaderista.codigo=articulo.codmerc*/

0 comments:

Publicar un comentario