Sei sulla pagina 1di 2

CENTRO DE GESTION DE MERCADOS LOGISTICA Y TECNOLOGIAS DE LA INFORMACION Fecha:

ANALISIS Y DESARROLLO DE SISTEMAS DE INFORMACION 31-Mar-20

PROCEDIMIENTOS ALMACENADOS con Neptuno

Redacte las sentencias SQL para crear los procedimientos almacenados para los
siguientes planteamientos:

1. Crear el SP que permita insertar datos en las tablas: Empleados, Clientes y


Pedidos.
2. Crear el SP que permita modificar el precio de un producto, debe recibir el código
del producto y el nuevo precio, tenga en cuenta que el nuevo precio no puede estar
por debajo ni por encima del 5% del precio actual del producto.
create Procedure ModdificarPrecioActualProducto
@IdProducto int ,
@PrecioUnidad money
as
update Productos
set PrecioUnidad=@PrecioUnidad
where @PrecioUnidad between PrecioUnidad-(PrecioUnidad*0.05) and
PrecioUnidad+(PrecioUnidad*0.05)and @IdProducto=IdProducto
go

execute ModdificarPrecioActualProducto '1', 16

create procedure CodProducto


@IdProducto int
as
select * FROM Productos
where
IdProducto=@IdProducto
go

execute CodProducto 1
3. Crear un SP que permita suspender los productos, debe recibir el código del
producto, tenga en cuenta que solo debe permitir suspender el producto cuando las
unidades en pedido sean 0.

create Procedure SuspenderProducto


@IdProducto int
as
update Productos
set Suspendido=1
where UnidadesEnPedido=0 and @IdProducto=IdProducto
go

execute SuspenderProducto 2

CREATE procedure ConsultaSuspenderProducto


as
select * from Productos
go

execute ConsultaSuspenderProducto
4. El gerente de recursos humanos debe tener disponible la información de cuáles de
sus empleados ya están pensionados, esto quiere decir que ya cumplieron 60

Elaborado por: Instructora Sandra Yanneth Rueda Guevara


SENA - Área de Teleinformática
CENTRO DE GESTION DE MERCADOS LOGISTICA Y TECNOLOGIAS DE LA INFORMACION Fecha:
ANALISIS Y DESARROLLO DE SISTEMAS DE INFORMACION 31-Mar-20

años, en el procedimiento almacenado, utilice la siguiente sintaxis SQL para hallar


la edad.

DATEDIFF(YEAR,NomColumnaTipoFecha,GETDATE())

La función DATEDIFF permite obtener el valor que resulta de extraer una de las
partes que compone un dato de tipo fecha. Se continúa la sintaxis agregando,
entre paréntesis y separando con coma, la parte que se desea obtener (año, mes ó
día), se agrega ahora el nombre de la columna con fecha más antigua y por
último, el nombre del campo tipo fecha más reciente; es importante señalar que la
función GETDATE() permite obtener la fecha actual, fecha del sistema, en la cual
se ejecute la sentencia; por lo tanto, es conveniente usarla para obtener datos
referentes a aniversarios como edad, tiempo de servicio, años, meses o días
transcurridos entre dos fechas.

Elabore un procedimiento que le permita al gerente visualizar el nombre completo


del empleado y el tiempo de pensionado que lleva cada uno.

Create procedure Pensionados


as
select Apellidos, Nombre , DATEDIFF(YEAR,FechaNacimiento,GETDATE()) as
Edad,
(DATEDIFF(YEAR,FechaNacimiento,GETDATE())- 60)
as [Tiempo Pensionado]
from Empleados
where (DATEDIFF(YEAR,FechaNacimiento,GETDATE()))>=60
go

execute Pensionados

5. El área de recursos humanos debe pasar el reporte anual de cuáles de sus


empleados están próximos a pensionarse, este reporte muestra el nombre
completo del empleado, los años de servicio que lleva y el número de años que
falta para pensionarse, El procedimiento debe mostrar, únicamente, aquellos que
tengan entre 55 y 59 años de edad y al menos 17 años de servicio.

6. Elabore un procedimiento almacenado que le permita al área de compras, generar


un reporte diario con los datos de los productos que deben pedir; para ello quieren
visualizar el nombre del producto, precio unitario, el precio promedio en ventas y la
diferencia entre el precio unitario y el precio promedio en ventas, todo esto siempre
y cuando el producto no se encuentre descontinuado (suspendido no debe ser
igual a 1).

Además, tenga en cuenta que las unidades en existencia deben ser mayores al
valor del nivel de nuevo pedido o que el nivel nuevo pedido puede ser cero pero
las unidades en existencia son menor o igual al 2.

Elaborado por: Instructora Sandra Yanneth Rueda Guevara


SENA - Área de Teleinformática

Potrebbero piacerti anche