The document contains code snippets for stored procedures and triggers to track changes to tables in a database. This includes procedures to retrieve sales data and staff details, triggers to log changes to customer records and audit changes to orders, and a trigger to track updates to rental records where the return date is changed to be later.
The document contains code snippets for stored procedures and triggers to track changes to tables in a database. This includes procedures to retrieve sales data and staff details, triggers to log changes to customer records and audit changes to orders, and a trigger to track updates to rental records where the return date is changed to be later.
The document contains code snippets for stored procedures and triggers to track changes to tables in a database. This includes procedures to retrieve sales data and staff details, triggers to log changes to customer records and audit changes to orders, and a trigger to track updates to rental records where the return date is changed to be later.
--1)alter proc usp_platosVendidos @fechainicial date, @fechafinal date
as select top (5) df.plato,count (*) as [cantidad de platos] from
detallefactura df inner join factura f on df.idfactura = f.idfactura where fechafactura between @fechainicial and @fechafinal group by df.plato order by [cantidad de platos] desc execute usp_platosvendidos '01/01/2016','12/12/2016' usp_platosvendidos '01/01/2016','12/12/2016' execute usp_platosvendidos @fechainicial= '01/01/2016',@fechafinal='12/12/2016'//// --2) solucin create procedure usp_listadocamareros @volumen int, @fechainicial date, @fechafinal date as select Co.nombre,co.apellido1,co.apellido2,df.idcocinero, count(*) as cantidad from cocinero co inner join detallefactura df on co.idcocinero = df.idcocinero inner join factura f on f.idfactura = df.idfactura where f.fechafactura between @fechainicial and @fechafinal group by Co.nombre,co.apellido1,co.apellido2,df.idcocinero having count(*) >@volumen //// --3) solucion alter trigger tr_historial on cliente1 for update as begin insert log_cliente select del.direccion as direccion_antigua,ins.direccion as direccion_nueva , del.contacto as contacto_antiguo, ins.contacto as contacto_nuevo from inserted ins inner join deleted del on del.idcliente = ins.idcliente end ////--4) solucin select cab.idmov, cab.fecha, cab.idcliente, cab.iddocumento, cab.numserie , cab.numdoc ,cab.montofactu,doc.distrito,doc.documento from cabmov cab inner join documento doc on cab.iddocumento = doc.iddocumento where year (cab.fecha) = 2014 and cab.montofactu between '1500'and '3000' and doc.distrito in ('san isidro','santiago de surco','pueblo libre') and doc.documento ='factura'//// create proc usp_consultarclientes as select * from cliente1 cli where cli.idcliente not in (select idcliente from cabmov group by idcliente )//// select e.nombrecliente ,e.direccion ,e.distrito ,e.idcliente from cabmov as l right join cliente1 as e on l.idcliente = e.idcliente where l.idcliente is null; //// --1:) solucin select idpedido,fecha as antiguo,fecha as nuevo,monto as montoAnt,monto as montoNue,tipo='I',getdate () as fecha_sistema into auditoria_pedido from pedido drop table auditoria_pedido create trigger tr_auditoria on pedido for insert,update,delete as declare @ins int, @del int set @ins=(select COUNT(*) from inserted) set @del=(select COUNT(*) from deleted) if @ins>0 and @del = 0 begin print 'se realizo una insercion' insert auditoria_pedido select ins.idpedido, ins.fecha, ins.fecha, ins.monto, ins.monto, 'I',getdate() from inserted ins end else if @ins>0 and @del>0 begin print 'se realizo una actualizacion' insert auditoria_pedido select ins.idpedido, del.fecha, ins.fecha, del.monto, ins.monto, 'U', GETDATE () from inserted ins inner join deleted del on ins.idpedido = del.idpedido en else if @ins=0 and @del>0 begin print 'se realizo un delete' insert auditoria_pedido select del.idpedido, del.fecha, del.fecha, del.monto, del.monto, 'D',getdate() from deleted del end //// ------create trigger tr_actualizacionDetalleon detallealquiler for update as insert auditoria_detalle select al.idcliente,ins.idauto,ve.placa, getdate() from inserted ins inner join vehiculo ve on ve.idauto=ins.idauto inner join alquiler al on al.idauto = ins.idauto where ins.fechadevolucion > ins.fechadevolver //// create trigger tr_actualizaciondetalle on
--1)alter proc usp_platosVendidos @fechainicial date, @fechafinal date
as select top (5) df.plato,count (*) as [cantidad de platos] from detallefactura df inner join factura f on df.idfactura = f.idfactura where fechafactura between @fechainicial and @fechafinal group by df.plato order by [cantidad de platos] desc execute usp_platosvendidos '01/01/2016','12/12/2016' usp_platosvendidos '01/01/2016','12/12/2016' execute usp_platosvendidos @fechainicial= '01/01/2016',@fechafinal='12/12/2016'//// --2) solucin create procedure usp_listadocamareros @volumen int, @fechainicial date, @fechafinal date as select Co.nombre,co.apellido1,co.apellido2,df.idcocinero, count(*) as cantidad from cocinero co inner join detallefactura df on co.idcocinero = df.idcocinero inner join factura f on f.idfactura = df.idfactura where f.fechafactura between @fechainicial and @fechafinal group by Co.nombre,co.apellido1,co.apellido2,df.idcocinero having count(*) >@volumen //// --3) solucion alter trigger tr_historial on cliente1 for update as begin insert log_cliente select del.direccion as direccion_antigua,ins.direccion as direccion_nueva , del.contacto as contacto_antiguo, ins.contacto as contacto_nuevo from inserted ins inner join deleted del on del.idcliente = ins.idcliente end ////--4) solucin select cab.idmov, cab.fecha, cab.idcliente, cab.iddocumento, cab.numserie , cab.numdoc ,cab.montofactu,doc.distrito,doc.documento from cabmov cab inner join documento doc on cab.iddocumento = doc.iddocumento where year (cab.fecha) = 2014 and cab.montofactu between '1500'and '3000' and doc.distrito in ('san isidro','santiago de surco','pueblo libre') and doc.documento ='factura'//// create proc usp_consultarclientes as select * from cliente1 cli where cli.idcliente not in (select idcliente from cabmov group by idcliente )//// select e.nombrecliente ,e.direccion ,e.distrito ,e.idcliente from cabmov as l right join cliente1 as e on l.idcliente = e.idcliente where l.idcliente is null; //// --1:) solucin select idpedido,fecha as antiguo,fecha as nuevo,monto as montoAnt,monto as montoNue,tipo='I',getdate () as fecha_sistema into auditoria_pedido from pedido drop table auditoria_pedido create trigger tr_auditoria on pedido for insert,update,delete as declare @ins int, @del int set @ins=(select COUNT(*) from inserted) set @del=(select COUNT(*) from deleted) if @ins>0 and @del = 0 begin print 'se realizo una insercion' insert auditoria_pedido select ins.idpedido, ins.fecha, ins.fecha, ins.monto, ins.monto, 'I',getdate() from inserted ins end else if @ins>0 and @del>0 begin print 'se realizo una actualizacion' insert auditoria_pedido select ins.idpedido, del.fecha, ins.fecha, del.monto, ins.monto, 'U', GETDATE () from inserted ins inner join deleted del on ins.idpedido = del.idpedido en else if @ins=0 and @del>0 begin print 'se realizo un delete' insert auditoria_pedido select del.idpedido, del.fecha, del.fecha, del.monto, del.monto, 'D',getdate() from deleted del end //// ------create trigger tr_actualizacionDetalleon detallealquiler for update as insert auditoria_detalle select al.idcliente,ins.idauto,ve.placa, getdate() from inserted ins inner join vehiculo ve on ve.idauto=ins.idauto inner join alquiler al on al.idauto = ins.idauto where ins.fechadevolucion > ins.fechadevolver //// create trigger tr_actualizaciondetalle on