设置和获取相同的SELECT语句或复杂的简单数学

时间:2016-06-24 19:59:51

标签: sql sql-server

我的脚本生成更新脚本以进行测试。

在本声明中,我需要的是

SELECT 'Update script', @PreviousBalance = @PreviousBalance - @CorrectPrice
FROM table
WHERE column = @Value
  1. **逻辑顺序

  2. 我有帐户的原始余额

  3. 减去交易金额

  4. (生成)插入交易金额和新余额

    将新余额存储为旧余额**

  5. 但是因为' A SELECT statement that assigns a value to a variable must not be combined with data-retrieval operations.'我需要其他一些方法来排除这一点。我的任务是迭代一些初始值,并更新事务日志。因此,每次必须从@CorrectPrice中减去@PreviousBalance

    想法?

    实际查询:

    SELECT 'UPDATE table 
                SET Amount = ' + CAST(@CorrectPrice as nvarchar(50)) + 
                ', SET CurrentValueUsed = ' + CAST((@PreviousBalance - @CorrectPrice) as nvarchar(50)) + '
                WHERE UsageId = ' + CAST(UsageId as nvarchar(50)) as 'UpdateQueriesToRun'
            FROM table
            WHERE ContractId = @ContractID AND
                DateActive IN (SELECT DateActive
                    FROM table
                    WHERE ContractId = @ContractID)
            ORDER BY DateActive ASC
    

1 个答案:

答案 0 :(得分:0)

如果我了解问题,您必须更新并保存更新的先前值。

如果这是正确的,您可以创建一个日志表,其中包含关键字段字段,日期时间字段(更新值时设置),前一个余额值的字段和具有新余额值的字段。

然后,您可以在要更新的表上创建更新触发器,并且可以在日志表中写入要更改的值。

希望这个解决方案可以帮到你!