Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Procedimientos Almacenados
*Crear un pa que muestre el monto total de ventas de una categoría de productos,
cuyo nombre es enviado completo o parcialmente como parámetro. En el caso de que
no se envíe el parámetro deberá mostrarse el resultado para todas las categorías
Ejemplo de ejecución: EXEC Ejercicio1 ‘Cond’
EXEC Ejercicio1 ‘Condiments’*/
create proc paEj1
@categoria varchar(20)
as
select sum(Quantity*o.UnitPrice) as MONTO, CategoryName
from OrderDetails o
inner join Products p on p.ProductID=o.ProductID
inner join Categories c on c.CategoryID=p.CategoryID
where CategoryName like @categoria+'%'/**/
group by CategoryName
exec paEj1 'Condiments'
exec paEj1 'Con'
declare @x decimal(9,2)
exec paej3 10250,@x output
select @x
/*4 Construir un pa que reciba un identificador de pedido y que devuelva en una
variable
de salida el número de días que demora la entrega
*/
create proc paej4
@pedido int, @dias int output
as
select @dias=DATEDIFF(dd,shippeddate,requireddate)
from Orders
where OrderID=@pedido
declare @x int
exec paej4 10248, @x output
select @x
/*Construir un PA que permita registrar un nuevo empleado.
*/
create proc painsertarempleado
@apellido varchar(10),
@nombre varchar(10)
as
insert into Employees(LastName,FirstName)
values(@apellido,@nombre)
exec paeliminaempleado 12
select *
from Employees
declare @x int
declare @y int
exec Ejercicio8 1996,@x output, @y output
/*9) Construir un pa que muestre la categoría que obtuvo el máximo monto total de
ventas
totales en un año determinado; y que además permita insertar un registro en la
tabla
llamada ResumenAnual (deberá usar el script para crar la tabla), conteniendo los
datos
que se muestran en su estructura. Deberá validar que no se registrevarias veces
para el
mismo año*/
CREATE TABLE ResumenAnual (
id int IDENTITY (1, 1) NOT NULL ,
año int NULL ,
monto decimal(9, 2) NULL,
categoria varchar(30) NULL
) ON [PRIMARY]
GO
/*=====*/
create proc paej9 @año int as
if not exists(select * from ResumenAnual where año=@año)
BEGIN
declare @categoria varchar(20),@monto decimal(9,2)/*2*/
select top 1 @categoria=CategoryName, @monto=sum(Quantity*d.UnitPrice)/*1*/
from Categories c
inner join Products p on p.CategoryID=c.CategoryID
inner join OrderDetails d on p.ProductID=d.ProductID
inner join Orders o on o.OrderID=d.OrderID
where year(OrderDate)=@año
group by CategoryName
order by sum(Quantity*d.UnitPrice) desc/*1*/
insert into ResumenAnual values (@año,@monto,@categoria)/*2*/
end