Hola buenas tardes !
Estoy tratando de hacer una tabla de amortización , el parámetro pide valores tipo texto.
Cree una tabla con la siguientes estructura
Id_clave descripción nombre_corto tasa
1 Mensual M 0.15
2 Semanal S 0.17
3 Quincenal Q 0.19
Código SQL:
Ver originalIF EXISTS ( SELECT *
FROM sys.objects
WHERE name = 'Amortizacion' )
DROP TABLE Amortizacion
GO
ALTER PROCEDURE tabla_amortizacion
@prestamo DECIMAL (10,4)
,@periodo VARCHAR(150)
--periodos 1 = mensual 2 = semanal 3= quincenal
AS ---declaracion de variables
IF EXISTS ( SELECT CAST(INT,nombre_cort)
FROM Periodo
WHERE nombre_cort = @periodo )
--SET @prestamo = CAST( @periodo AS INT)
DECLARE @capital1 DECIMAL (10,4);
DECLARE @interes1 FLOAT = 0;
DECLARE @iva1 FLOAT = 0;
DECLARE @contador FLOAT = 0
,@capital_in FLOAT = 0
,@p1 INT = 0
,@p2 INT = 0
,@pago DECIMAL (10,4);
DECLARE @capital DECIMAL(10,4);
DECLARE @interes FLOAT = 0;
DECLARE @iva DECIMAL(10,4)
,@capital_in1 INT = 0
,@pago1 DECIMAL(10,4)
,@saldo_inicial DECIMAL(10,4)
,@Cal_periodos FLOAT = 0;
CREATE TABLE Amortizacion (Periodo SMALLINT
,Capital DECIMAL (10,4)
,Interes DECIMAL(10,4)
,Iva DECIMAL(10,4)
,Saldo_Inicial DECIMAL(10,4)
,Pago DECIMAL (10,4));
SET @capital = (@prestamo * .10)
SET @interes = (@capital * .15)
SET @iva = (@interes * .16)
SET @capital_in = @prestamo
SET @pago = @capital + @interes + @iva
INSERT INTO Amortizacion
VALUES (1, @capital, @interes, @iva, @capital_in, @pago)
SET @saldo_inicial = @prestamo - @capital
SET @Contador = 2
WHILE @Contador <= @Periodo
BEGIN
SET @capital1 = (@saldo_inicial * .10)
SET @interes1 = (@capital1 * .15)
SET @iva1 = (@interes1 * .16)
SET @capital_in1 = @saldo_inicial
SET @pago = @capital1 + @interes1 + @iva1
INSERT INTO Amortizacion
VALUES (@contador, @capital1, @Interes1, @iva1, @capital_in1, @pago)
SET @saldo_inicial = @saldo_inicial - @capital1
SET @Contador = @Contador + 1
END
SELECT *
FROM Amortizacion
GO
Lo que trate de hacer es comparar los datos ingresados en los parámetros compararlos con la tabla creada ...alguna sugerencia ?