sql存储过程计算总周长错误

我编写了一个存储过程,有三个参数,一个参数是长,一个是宽,还有一个是任意的值,需要求出这个任意数的两个数相乘相近的值,并计算出总的周长

declare
@length INT=100,
@width INT=100,
@value INT=10
BEGIN
DECLARE @product INT
SET @product = @length * @width
IF @value > @product
BEGIN
SET @product = @length * (@width + 1)
END
ELSE IF @value < @product
BEGIN
SET @product = @length * (@width - 1)
END
SELECT @length*@value+ @length + @width + @length + @width AS Perimeter
END

基于Monster 组和GPT的调写:

DECLARE @length INT = 100,
@width INT = 100,
@value INT = 10

DECLARE @product INT
SET @product = @length * @width

-- 计算最接近的值
IF @value > @product
BEGIN
SET @product = @length * CEILING(@value / @length)
END
ELSE IF @value < @product
BEGIN
SET @product = @length * FLOOR(@value / @length)
END

-- 计算周长
DECLARE @perimeter INT
SET @perimeter = 2 * (@length + @width) + @product

SELECT @perimeter AS Perimeter

完整版的sql语句,已经执行成功。

DELIMITER $$
create PROCEDURE test()
    BEGIN

        DECLARE length INT DEFAULT 100;
        DECLARE width INT DEFAULT 100;
        DECLARE temp INT DEFAULT 10;

        SET @product = length * width;
        IF temp > product THEN
            SET @product = length * (width + 1);
        ELSEIF (temp < product) THEN
            SET @product = length * (width - 1);
        end if;
        SELECT (length*temp+ length + width + length + width ) AS Perimeter;
    END$$
DELIMITER ;

有帮助的话,请点采纳~