如果总列的总和大于10,则将sql插入到数据库中

时间:2014-08-19 06:24:05

标签: c# sql sql-server

我正在使用SQL。 我有一个表名[TEST]和一个整数列[column1]。

我想将数据插入[column1],直到记录达到100的总和。 如果总和超过100,则SQL查询不应插入记录。

这意味着,在执行insert语句之前,SQL查询应该检查可用数据的总和。如果数据小于100,则会插入。否则,它不会插入。

感谢。

3 个答案:

答案 0 :(得分:2)

您可以对insert语句使用以下存储过程:

CREATE PROCEDURE spInsertData
(
    @value INT
)
AS
BEGIN
    DECLARE @total INT
    SET @total = ISNULL((SELECT SUM([columnName]) FROM [tableName]),0)

    IF (@total + @value) <= 100
        BEGIN
            INSERT INTO [tableName] VALUES (@value)
        END
END

答案 1 :(得分:0)

在oracle DB中测试,应该在msql或任何其他数据库中工作

Case语句语法可能会有所不同!但一般的逻辑相同

INSERT INTO TEST (COLUMN1)
SELECT [COULMN1 VALUE HERE] FROM DUAL
/*The condition that will check if inserting allowed or not*/
WHERE 
1 = (SELECT CASE WHEN SUM(column1) + [COULMN1 VALUE HERE] >= 100 THEN 0 ELSE 1 END FROM TEST)

注意:使用此解决方案,您将无需编写任何存储过程。

答案 2 :(得分:0)

我正在使用存储过程在我的表中插入数据..

insert into  FundTransfer_Log values (@id,@data);

此语句是一个循环,用于检查表中的所有数据(表包含200多条记录)。  首先,上面的insert语句对@data的总和进行求和以检查它是否小于100.如果它返回小于100,那么它将插入所有带有id的记录,否则它将不会插入。