tengo este procedimiento pa crear una base de datos que es un proyecto de la u pero no veo cual es el error ya que a la hora de ejecutarlo me lanza esta:
Mens 512, Nivel 16, Estado 1, Procedimiento ONMOVIMIENTO, Línea 25
La subconsulta ha devuelto más de un valor, lo que no es correcto cuando va a continuación de =, !=, <, <=, >, >= o cuando se utiliza como expresión.
CREATE
PROCEDURE ONMOVIMIENTO
@CODIGO
NVARCHAR (8) ,
@CUENTA
NCHAR(18),
@MOVIMIENTO
NCHAR (2),
@MONTO
MONEY,
@FECHA
SMALLDATETIME,
@EMPLEADO
NCHAR (4),
@VALOR
NCHAR (1)
AS
DECLARE @PRUEBA MONEY
IF (@VALOR = 'I')
BEGIN
IF @MOVIMIENTO = 'DE'
BEGIN
INSERT INTO MOVIMIENTOS (MOV_CODMOV,MOV_CUENTA,MOV_TIPOMOVIMIENTO,MOV_MONTO,MOV_FECHAYHORA,MOV_CODIEMPLEADO)
VALUES (@CODIGO,@CUENTA,@MOVIMIENTO,@MONTO,@FECHA,@EMPLEADO)
UPDATE CUENTA SET CUE_SALDO =(CUE_SALDO - @MONTO)
WHERE CUE_CUENTARJ = @CUENTA
END
ELSE
IF (@MOVIMIENTO = 'CR' )
BEGIN
SET @PRUEBA= (SELECT CUE_TARIFAFIJA FROM CUENTA) - (SELECT CUE_SALDO FROM CUENTA)
IF (@MONTO = @PRUEBA)
BEGIN
INSERT INTO MOVIMIENTOS (MOV_CODMOV,MOV_CUENTA,MOV_TIPOMOVIMIENTO,MOV_MONTO,MOV_FECHAYHORA, MOV_CODIEMPLEADO)
VALUES(@CODIGO,@CUENTA,@MOVIMIENTO,@MONTO,@FECHA,@EMPLEADO)
UPDATE CUENTA SET CUE_SALDO=(CUE_SALDO + @MONTO)
WHERE CUE_CUENTARJ = @CUENTA
END
END
END
ELSE
IF (@VALOR = 'B')
BEGIN
DELETE MOVIMIENTOS WHERE MOV_CODMOV = @CODIGO
END