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