You are on page 1of 1

--1 --1

create view cliente as select create view cliente as select


concat(primer_apellido,’ ‘, segundo_apellido, ‘ concat(primer_apellido,’ ‘, segundo_apellido, ‘
‘ , nombre) ‘ , nombre)
as cliente,extract(year from as cliente,extract(year from
age(now(),cacimiento)) age(now(),cacimiento))
as edad, sum(cantidad * precio) as monto from as edad, sum(cantidad * precio) as monto from
cliente cliente
inner join venta using (id_cliente) inner join venta using (id_cliente)
inner join venta_detalle using (id_venta) inner join venta_detalle using (id_venta)
inner join producto using (id_producto) inner join producto using (id_producto)
inner join marca using (id_marca) inner join marca using (id_marca)
where fecha>=(now()-interval '6 month')and marca where fecha>=(now()-interval '6 month')and marca
ilike 'nike' ilike 'nike'
group by 1,2 group by 1,2
having sum(precio * cantidad)>10000; having sum(precio * cantidad)>10000;
--2 --2
SELECT EXTRACT(YEAR FROM v.fecha) AS anio, SELECT EXTRACT(YEAR FROM v.fecha) AS anio,
EXTRACT(MONTH FROM v.fecha) AS mes, EXTRACT(MONTH FROM v.fecha) AS mes,
e.id_empleado, CONCAT(e.primer_apellido, ' ', e.id_empleado, CONCAT(e.primer_apellido, ' ',
e.segundo_apellido, ' ', e.nombre) AS e.segundo_apellido, ' ', e.nombre) AS
nombre_completo, nombre_completo,
CONCAT('$', SUM(vd.cantidad * CONCAT('$', SUM(vd.cantidad *
p.precio)) AS total_ventas, p.precio)) AS total_ventas,
RANK() OVER (PARTITION BY EXTRACT(YEAR FROM RANK() OVER (PARTITION BY EXTRACT(YEAR FROM
v.fecha), EXTRACT(MONTH FROM v.fecha) v.fecha), EXTRACT(MONTH FROM v.fecha)
ORDER BY SUM(vd.cantidad) DESC) AS posicion ORDER BY SUM(vd.cantidad) DESC) AS posicion
FROM venta v JOIN empleado e ON v.id_empleado = FROM venta v JOIN empleado e ON v.id_empleado =
e.id_empleado JOIN venta_detalle vd e.id_empleado JOIN venta_detalle vd
ON v.id_venta = vd.id_venta JOIN producto p ON ON v.id_venta = vd.id_venta JOIN producto p ON
p.id_producto = vd.id_producto p.id_producto = vd.id_producto
GROUP BY 1, 2, 3, 4 GROUP BY 1, 2, 3, 4
ORDER BY 1, 2; ORDER BY 1, 2;
--3 psql --3 psql
°create role calidad login; °create role calidad login;
°GRANT SELECT ON ALL TABLES IN SCHEMA public TO °GRANT SELECT ON ALL TABLES IN SCHEMA public TO
calidad; calidad;
°GRANT INSERT, DELETE, UPDATE ON cliente, venta, °GRANT INSERT, DELETE, UPDATE ON cliente, venta,
venta_detalle, empleado, tienda TO calidad; venta_detalle, empleado, tienda TO calidad;
°revoke update,delete on empleado,tienda from °revoke update,delete on empleado,tienda from
calidad; calidad;
°grant select(id_producto,producto,precio)on °grant select(id_producto,producto,precio)on
producto to calidad; producto to calidad;
--mysql --mysql
°CREATE ROLE calidad; °CREATE ROLE calidad;
°GRANT SELECT ON venta.* TO calidad; °GRANT SELECT ON venta.* TO calidad;
°grant insert,delete,update on cliente.* to °grant insert,delete,update on cliente.* to
calidad; calidad;
--*||mismo para venta,v_detalle,empleado,tienda --*||mismo para venta,v_detalle,empleado,tienda
°REVOKE UPDATE, DELETE ON empleado.* FROM °REVOKE UPDATE, DELETE ON empleado.* FROM
calidad; calidad;
°REVOKE UPDATE, DELETE ON tienda.* FROM calidad; °REVOKE UPDATE, DELETE ON tienda.* FROM calidad;
°GRANT SELECT (id_producto, producto, precio) ON °GRANT SELECT (id_producto, producto, precio) ON
producto TO calidad; producto TO calidad;

You might also like