Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Funciones y procedimientos almacenados en base de datos de inventarios, Ejercicios de Sistemas de Gestión de Bases de Datos

En este documento se presentan las instrucciones para crear diferentes funciones y procedimientos almacenados en una base de datos preventas, que permiten realizar operaciones como calcular el stock disponible, el precio más bajo, el importe total de una preventa y contar el número de preventas realizadas por un cliente. Además, se incluyen ejemplos de cómo usar estas funciones y procedimientos almacenados para registrar una preventa con nombre 'JUANA LA CUBANA' y productos específicos.

Tipo: Ejercicios

2021/2022

Subido el 12/07/2022

daark-king
daark-king 🇧🇴

5

(1)

4 documentos

1 / 5

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
PRACTICO
Nombre: Franco Gerardo
Corani Calle
Registro: 216159547
Carrera:
Ingenieria en Sistemas
Materia: Base De Datos 2
pf3
pf4
pf5

Vista previa parcial del texto

¡Descarga Funciones y procedimientos almacenados en base de datos de inventarios y más Ejercicios en PDF de Sistemas de Gestión de Bases de Datos solo en Docsity!

PRACTICO

Nombre: Franco Gerardo

Corani Calle

Registro: 216159547

Carrera:

Ingenieria en Sistemas

Materia: Base De Datos 2

    1. Crear la Base de Datos "preventas" usando el Esquema Fisico de la Base de Datos preventa --2. Elabora las siguientes Funciones y Procedimientos Almacenados en la Base de Datos preventas -- 1. Hacer una Funcion "Stock" que calcule el Stock disponible de un producto en un determinado almacen create function Stock(@cprd integer, @calm integer) returns integer as begin return (select isnull(sum(sumi.cant), 0 ) from sumi where sumi.cprd = @cprd and sumi.calm = @calm) end drop function Stock -- 2. Hacer una Funcion "ExisteStock" que devuelve 1 si existe Stock disponible de un producto en un determinado almacen, -- de lo contrario retorna 0 create function ExisteStock(@cprd integer, @calm integer) returns integer as begin declare @stock integer declare @resultado tinyint set @resultado = 0 set @stock = (dbo.Stock (@cprd, @calm)) if(@stock > 0 ) set @resultado = 1 return @resultado end -- 3. Hacer una Funcion "PrecioBajo" que devuelve el precio mas bajo de un producto suministrado a un determinado almacen create function PrecioBajo(@cprd integer, @calm integer) returns decimal as begin return (select top 1 (sumi.prec) from sumi where sumi.cprd = @cprd and sumi.calm = @calm order by sumi.prec asc) end -- 4. Hacer Funcion "Calcular_Importe_total" que calcule el importe total de una preventa dada. -- El importe total de una preventa es la sumatoria de los importe de cada producto que integra el detalle de la preventa. create function Calcular_Importe_total(@nvta integer) returns decimal as begin return (select pventas.itot from pventas where pventas.nvta = @nvta) end -- 5. Hacer Funcion "Contar_Preventas" que cuente cuantas preventas realizadas tiene un cliente dado select* from dventas select* from pventas select* from log_pventas create function Contar_Preventas(@nomc char( 40 )) returns integer as begin declare @resultado integer

create function Calcular_Puntos(@nvta integer) returns integer as begin declare @nomc char( 40 ), @puntos integer set @puntos = 0 set @nomc = ( select pventas.nomc from pventas where pventas.nvta = @nvta ) if(dbo.Contar_Preventas(@nomc) >= 1 ) set @puntos = @puntos + 10 else set @puntos = @puntos + 5 if(dbo.Mismo_Almacen(@nomc) = 1 ) set @puntos = @puntos + 5 return @puntos end -- 9. Hacer Funcion "Calcular_Descuento" que calcule el importe de descuento de una preventa dada. -- El importe de descuento de una preventa es calculado bajo los siguientes criterios: -- a) Si el importe total es mayor a 10 Bs se aplica un descuento del 2% sobre el importe total -- b) Si la preventa tiene mas de dos productos diferentes se aplica un 1% sobre el importe total -- c) Si el Cliente tiene mas de 10 puntos de bonificacion se aplica 2% sobre el importe total create function Calcular_Descuento(@nvta integer) returns -- 10. Hacer un PA "Actualiza_importe" que actualice el importe total de una preventa. -- 11. Hacer un PA "Actualiza_Descuento" que actualice el importe total de descuento de una preventa. create procedure Actualiza_Descuento(@nvta integer) as update pventas set ides = dbo.ca --3. PROBLEMA A RESOLVER USANDO LAS FUNCIONES Y PA DESARROLADAS ANTERIORMENTE -- Hacer PA "PA_Resgitro_Preventa" que registre la preventa numero 100, con fehca de hoy a nombre de JUANA LA CUBANA. -- La lista de los productos que debe incluir la preventa deben ser del almacen 1 y son los siguientes: -- Codigo, Nombre, Cantidad, Precio -- 1 PRD1 2? -- 2 PRD2 3? -- 3 PRD3 2?

-- El Precio del producto debe ser el precio mas bajo suministrado en el almacen -- El Importe de cada producto es la multiplicacion de la Cantidad por Precio -- Si el producto no tiene el stock suficiente para la cantidad requerida no debe ser registrado en la preventa -- Al terminar de grabar todos los producto debe actualizar el importe total de la preventa. -- Al terminar de grabar todos los producto debe actualizar el importe total de descuento de la preventa.