Ejemplos Vistas
-- Obtiene
la suma de Cargo, Abono y el Saldo
-- Agrupado
por tarjeta
CREATE VIEW [dbo].[vTarjetaSaldoDS]
AS
SELECT CodTarjeta, SUM(Cargo) AS SumaCargo, SUM(Abono) AS SumaAbono,
SUM(Cargo - Abono) AS SaldoActualReal
FROM dbo.Movimiento
GROUP BY CodTarjeta
GO
-- Lista las tarjetas cuyo
Tarjeta.SaldoActual sea diferente de la vista
CREATE VIEW [dbo].[vSaldoDiferenteDS]
AS
SELECTTarjeta.CodTarjeta, Tarjeta.CodCliente, Tarjeta.NumeroTarjeta, Tarjeta.FechaVencimiento, Tarjeta.LimiteCredito,
Tarjeta.SaldoActual, dbo.vTarjetaSaldoDS.SaldoActualReal
FROM
dbo.Tarjeta
INNER JOIN dbo.vTarjetaSaldoDS
ON dbo.Tarjeta.CodTarjeta = dbo.vTarjetaSaldoDS.CodTarjeta
WHERE (NOT (Tarjeta.SaldoActual = vTarjetaSaldoDS.SaldoActualReal))
GO
Ejemplos Procedimientos Almacenados
--
=============================================
-- Author: Daniel
Santizo Saldaña
-- Create date: 20170203
--
Description: Actualizar saldo Tarjeta
por medio del CodTarjeta
--
=============================================
CREATE PROCEDURE
paActualizarSaldoDS
-- Add the parameters for the
stored procedure here
@CodTarjeta
int = 0
AS
BEGIN
-- SET NOCOUNT ON added to
prevent extra result sets from
-- interfering with SELECT
statements.
SET NOCOUNT ON;
-- VARIABLE
DECLARE @SaldoReal DECIMAL = 0;
-- CONSULTA por
el Saldo
SELECT @SaldoReal =
SaldoActualReal
FROM vTarjetaSaldoDS
WHERE CodTarjeta = @CodTarjeta;
-- ACTUALIZAR
EL SALDO en la Tabla Tarjeta
UPDATE Tarjeta
SET SaldoActual = @SaldoReal
WHERE CodTarjeta = @CodTarjeta;
END
GO
--
=============================================
-- Author: Daniel
Santizo Saldaña
-- Create date: 20170203
--
Description: Cambio el Estado del
Cliente sino tiene Saldo Pendiente
--
=============================================
CREATE PROCEDURE
paClienteBajaDS
-- Add the parameters for the
stored procedure here
@CodCliente
int = 0
AS
BEGIN
-- SET NOCOUNT ON added to
prevent extra result sets from
-- interfering with SELECT
statements.
SET NOCOUNT ON;
-- Insert statements for
procedure here
DECLARE @Saldo decimal = 0;
SELECT @Saldo = SUM(v.SaldoActualReal)
FROM Tarjeta T
INNER JOIN
vTarjetaSaldoDS v
ON T.CodTarjeta = v.CodTarjeta
WHERE T.CodCliente = @CodCliente;
-- SI EL SALDO
ES IGUAL A 0
IF (@Saldo = 0)
UPDATE Cliente
SET Estado = 'B'
WHERE CodCliente = @CodCliente;
ELSE
RAISERROR( 'El Cliente %d
tienen un saldo',
3, 5, @CodCliente);
RETURN @Saldo;
END
GO
No hay comentarios.:
Publicar un comentario