Está en la página 1de 5

I-) Diseñe la siguiente bases de datos en sql server que se llame :

CentralTelefonica
La cual sera proporcionada por docente para que la restaure dicha base de datos ya contiene
la tabla relacionada con sus registro el cual es la siguiente.

Una ves restaurado la base de datos revise la lógica de datos y los registro que
están ingresado para un mejor dominio de la misma.

-Un vez ingresado los registro en la tablas diseño las siguientes consulta
y procedimiento.

1-Diseñe un procedimiento con una consulta que permita encontrar si un


usuario tiene saldo de recarga si no la tiene regístrele una recarga de 100 y la
cual está sextuplicando la promoción para calcular la fecha de vencimiento que
son tres meses después de la fecha de activación y saldo promocional.

create procedure Verificar


@CodUS int,
@CodAutorizacion int,
@Monto money

as
if exists(select * from DatoRecarga where CodUS=@CodUS)
begin
ROLLBACK
end
else
begin
declare @Fecha datetime
declare @saldo money
declare @promo money
set @Fecha=GETDATE()
set @saldo=@Monto+(@Monto*5)
set @promo=@Monto*5
Insert into DatoRecarga values(@CodAutorizacion,@Fecha,DATEADD(MM, 3, @Fecha)
, @Monto,@saldo,@promo,@CodUS )
end

2-Diseñe un procedimiento para cada operación: insertar registró en la tabla


usuario, otro para actualizarlo, eliminar y buscar.

create Procedure usuaActualizar


@CodUS int,
@NoTelefono varchar(15),
@Nombre varchar(50),
@Compania varchar(50)
as
Update Usuario
set NoTelefono = @Notelefono,
Nombre = @Nombre,
Compania = @Compania
where CodUS=@CodUS
go

Create Procedure usuaInsert


@NoTelefono varchar(15),
@Nombre varchar(50),
@Compania varchar(50)
as
insert into Usuario values(@NoTelefono,@Nombre,@Compania)

Create Procedure Buscar


@CodUS int = null,
@NoTelefono varchar(15)=null,
@Nombre varchar(50)=null

as
select * from Usuario
where (CodUS = @CodUS or CodUS=null) or (NoTelefono =@NoTelefono or NoTelefono
=null) or (Nombre=@Nombre or Nombre=null)

Create procedure DarBaja


@CodUs int =null
as
update Usuario
set Estado='Inactivo'
where CodUS = @CodUS

3-Diseñe un procedimiento que permita calcular el monto de recarga total que


recibido cada una de la compañía en una fecha determinada.
Create procedure Totalcompania
@FI datetime,
@FF datetime
as
SELECT dbo.Usuario.Compania,dbo.DatoRecarga.Fecha,
SUM(dbo.DatoRecarga.MontoRecarga) AS Total
FROM dbo.Usuario INNER JOIN
dbo.DatoRecarga ON dbo.Usuario.CodUS =
dbo.DatoRecarga.CodUS
GROUP BY dbo.Usuario.Compania, dbo.DatoRecarga.Fecha having dbo.DatoRecarga.Fecha
between @FI and @FF

4-Diseñe un procedimiento que permita cambiar el estado a los paquete de


activación de activo a vencido utilizando la Fecha actual y fecha vencimiento

create Procedure Vencimiento


@Fecha datetime

as
declare @vencimiento datetime
select @vencimiento = FechaVenci from Paquetes
if @Fecha>@vencimiento
begin
Update Paquetes
set Estado='Vencido'
end

5-Diseñe un procedimiento almacenado que permita registrar una llamada a un


usuario y calcule el monto de la llamada calculando los minutos por el costo del
minuto y eso se le deduzca al monto de la recarga en el saldo de recarga.

create procedure costollamada


@TipoOpera nvarchar(25),
@Tiempo float,
@CodUS int,
@CodAut int
as

declare @PrecioMin money


declare @Costoll money
declare @CodLLamada int
declare @Fecha date

if @TipoOpera='Movistar'
begin
set @PrecioMin=5
end
else if @TipoOpera='Claro'
begin
set @PrecioMin=10
end
else
begin
set @PrecioMin=2.5
end
--calculamos el costo de la llamada
set @Costoll=@PrecioMin * @Tiempo
--asginamos la fecha
set @Fecha= GETDATE()
--Hacemos autonumerico
select @CodLLamada=max(Convert(int ,CodLlamad)) +1 from LlamadOpe

insert into LlamadOpe


values(@CodLLamada,@Fecha,@TipoOpera,@Tiempo,@PrecioMin,@Costoll,@CodUS,@CodAut)
update DatoRecarga
set MontoRecarga=MontoRecarga-@Costoll
where CodUS=@CodUS

6-Diseñe un procedimiento almacenado que permita registrar una paquete de


activación de una recarga y calcule el costo del paquete y se le vaya a restar al
saldo promocional.
7-Diseñe un procedimiento realizar transferencia de saldo de un recarga de un
número a otro.

8-Diseñe una consulta que encuentre el número de teléfono con monto de


recarga total ya con el promocional incluido.

También podría gustarte