Está en la página 1de 6

USE Data25C1_2021_1

--- PROCEDIMIENTOS ALMACENADOS---


---procedimientos alamacenados de la misma base de datos---
execute sp_help 'Articulos'

---listado de las ventas en donde se envia como parametros fecha inicial y final de
un intervalo de tiempo---
go
create procedure lis_ventas
@fi date, @ff date
as
begin
---proceso solo se ejecuta el proceso para que funcione/ ventas.precio hace
referencia al precio de la tabla ventas
select fecha, Descripcion, cantidad, ventas.precio
from ventas inner join Articulos
on ventas.idArticulo= Articulos.idArticulo
where fecha between @fi and @ff
end
go
---ejecutacion del procedimiento---
exec lis_ventas '2013-04-25','2014-11-19'

------------------------------------------------------------------------------------
-------------------------------------------
---total de ventas de un determinado mes y año con parametro de variable tipo int
entero---
go
create procedure to_ventas
@a int, @mes int
as
select total = SUM(cantidad*precio)from ventas
where YEAR(fecha) = @a and MONTH(fecha)=@mes
go
---ejecucion del procedimiento---
execute to_ventas 2013,4
------------------------------------------------------------------------------------
-
---listado de articolos y su total de ventas
---enviando como parametro una parte del nombre del articuloprocedimiento con
parametro tipo caracter---
go
create procedure lis_venta_articulo
@nombre varchar(100)
as
select Descripcion, Total=cast(SUM(cantidad*V.precio) as money)
from Articulos A join ventas V
on A.idArticulo = V.idArticulo
--- el presente proceso hace como referencia a la busqueda del articulo por el
nombre ingresado
where Descripcion like '%' + @nombre + '%'
group by Descripcion
---ejecucion del procedimiento---
execute lis_venta_articulo 'silla'
------------------------------------------------------------------
---numeros aleatorios---
declare @numero int
set @numero = (25-15)* rand()+15
print @numero
---el mismo proceso anterior con valores decimales---
go
declare @numero real
set @numero = round((100-10)* rand()+10,0)
print @numero
--------------------------------------------------------------------
---PROCEDIMIENTOS PARA INSERTAR,MODIFICAR,ELIMINAR CRUD---
---PROCEDIMIENTO ALMACENADO PARA CREAR UN NUEVO ARTICULO CON PARAMETRO DE ENTRADA

select * from Articulos


go
create procedure inser_articulo
@Descripcion varchar(30),
@Stock int,
@Precio real,
@idProveedor int
as
INSERT INTO [dbo].[Articulos]
([Descripcion],
[Stock],
[Precio],
[idProveedor])
VALUES(@Descripcion,@Stock,@Precio,@idProveedor)
go
execute inser_articulo 'Ropero',3,38.5,1
select * from Articulos order by idArticulo desc
------------------------------------------------------------------------

---PROCEDIMIENTO PARA CONSULTAR---


go
create procedure consultar_ar
@nombre varchar(100)
as
select idArticulo, Descripcion, Stock,Precio,razonSocial
from Articulos A inner join Proveedores P
on A.idProveedor = P.idProveedor
where Descripcion like '%' + @nombre + '%'
go
execute consultar_ar 'ropero'
-------------------------------------------------------------------------------
---procedimiento para modificar datos de una tabla
go
create procedure modifi_art
---para modificar un articulo lleva los mismos parametros de entradas incluyendo uno
adicional que es el idArticulo
@Descripcion varchar(30),
@Stock int,
@Precio real,
@idProveedor int,
@idArticulo int
as
update Articulos set
Descripcion= @Descripcion,
Stock=@Stock,
Precio=@Precio,
idProveedor=@idProveedor
where idArticulo = @idArticulo
go
---ejecucion de la modificacion
execute modifi_art 'Ropero 3 puertas',3,39.75,1,13
---consuta de la modificacion
execute consultar_ar'ropero'
--------------------------------------------------------
---procedimiento para eliminar un articulo
go
create procedure borrar_articulo
@idArticulo int
as
delete from Articulos where idArticulo = @idArticulo
go
--- ejecucion del procedimiento
execute borrar_articulo 13
---consulta si el procedimiento fue exitoso
execute consultar_ar'ropero 3 puertas'
-------------------------------------------------------------------
---funcion exists
if exists (select * from Articulos where Descripcion like 'vaso%')
print 'si existe el producto'
else
print 'no existe el producto'

---modificar y utilizar parametro de salida--


---validacion que no se repita el producto---
go
alter procedure inser_articulo
@Descripcion varchar(30),
@Stock int,
@Precio real,
--- el siguiente proceso se usa para saber si el nombre que se va a poner es
repetido o no
@idProveedor int,@mensaje varchar(100) output
as
if exists (select * from Articulos where Descripcion like @Descripcion)
begin
set @mensaje = 'el nombre del articulo ya existe'
end
else
begin
INSERT INTO [dbo].[Articulos]
([Descripcion],
[Stock],
[Precio],
[idProveedor])
VALUES(@Descripcion,@Stock,@Precio,@idProveedor)
set @mensaje = 'el articulo fue grabado con exito'
end
go
--- utilizar el procedimiento con parametro de salida--
declare @da varchar(100)
execute inser_articulo 'balde grande',10,12.5,2,@mensaje=@da output
print @da

select * from Articulos order by idArticulo desc


Use Data25C1_2021_1
---consultas
---CONSULTA PARA SABER SI UN PRODUCTO ES BARATO O CARO

select [Nombre del articulo]=Descripcion,Precio,


case
when Precio between 0 and 10 then 'barato'
when Precio between 11 and 40 then 'aceptable'
when Precio > 10 then 'caro'
end as percepcion from Articulos
-------------------------------------------------------
---llamar la tabla original
select * from Articulos
-------------------------------------------------------
--- consulta declarando variables local con case de busqueda

declare @calificacion int=7


select [calificacion]=@calificacion, equivalencia =
case
when @calificacion = 10 then 'excelente'
when @calificacion = 9 then 'muy bueno'
when @calificacion = 8 then 'bueno'
when @calificacion = 7 then 'regular'
when @calificacion < 7 then 'insuficiente'
end
-------------------------------------------------
--- case de busqueda sencillo

declare @nota int=7


select [calificacion]=@nota, equivalencia =
case @nota
when 10 then 'excelente'
when 9 then 'muy bueno'
when 8 then 'bueno'
when 7 then 'regular'
end
---------------------------------------------
--- ordenar tabla articulo por el valor de los precios
select * from Articulos order by
case
when Precio between 0 and 40 then stock
end desc,
case
when Precio > 40 then stock
end asc
-----------------------------------------------------
--- MOSTRAR LA FECHA DEL COMPUTADOR
select GETDATE()
--- muestra el numero de la semana
select DATEPART(week,getdate())
---presenta el numero de la semana con formato de la fecha
select DATEPART(week,'2022-01-01')
---muestra el mes de la fecha
select DATEname(month,'2022-01-01')
--------------------------------------------------------
---mostrar el total de ventas agrupados por meses. total de ventas
=cantidad*precio
select MES=datename(MM,fecha),
Total=cast(sum(cantidad*precio) as money)
from ventas
group by datename(MM,fecha),MONTH(fecha)
order by MONTH(fecha)
-----------------------------------------------------------
---conversion de fechas y estilos de fecha que se aplican modificando el ultimo
numero
---desde 103 asta 108.
select CONVERT(varchar(12),getdate(),104)
--- sumar y restar fechas y semanas a la fecha actual.
---semanas
select DATEADD(week,4,getdate())
select DATEADD(week,-4,getdate())
---meses
select DATEADD(month,4,getdate())
select DATEADD(month,-4,getdate())
---años
select DATEADD(year,4,getdate())
select DATEADD(year,-4,getdate())
---funcion que permite saber el dia de la semana
select DATENAME(weekday,getdate())
---funcion que permite saber el dia de la semana con fecha ingresada
select DATENAME(weekday,'1492-10-12')
----------------------------------------------------------
---concatenaciones para trabajar con fechas dia,mes,año
---nombre del mes
select datename(mm,getdate())+','
---dis de la semana
+datename(weekday,getdate())+','
--- presentacion de formato de la fecha actual
+ convert(varchar(10),getdate(),103) as [fecha actual]
---------------------------------------------------------
---mostrar el total de ventas agrupados por semestres. total de ventas
=cantidad*precio
select SEMESTRE=
CASE
WHEN MONTH(FECHA) BETWEEN 1 and 6 then '1er semestre'
WHEN MONTH(FECHA) BETWEEN 7 and 12 then '2do semestre'
END,
Total=cast(sum(cantidad*precio) as money)
from ventas group by
CASE
WHEN MONTH(FECHA) BETWEEN 1 and 6 then '1er semestre'
WHEN MONTH(FECHA) BETWEEN 7 and 12 then '2do semestre'
END
----------------------------------------------------------------
---PROCEDIMIENTOS ALMACENADOS

También podría gustarte