【问题标题】:How do I move the negative debit values from a column into the credit column and make them positive?如何将负借方值从列移动到贷方列并使其为正?
【发布时间】:2020-06-27 18:59:48
【问题描述】:

我在 SQL 中有一个名为“帐户”的表,如下所示:

Debits  Credits

-22      0

-1      -1

-5       0

 0      -9

-13     -4

我希望所有值都是正数,但最终帐户仍然有意义。因此,Debits 列中的所有负值将在 Credits 列中变为正值,如下表所示。我该怎么做?两列中的值都是浮点数。

Debits  Credits

0       22

1       1

0       5

9       0

4       13

谢谢!

【问题讨论】:

  • 负借项和贷项在某些司法管辖区是违法的。我很难想象这种逻辑在什么情况下是合法的!

标签: sql


【解决方案1】:

使用一元减号运算符以获得更简洁的语法

UPDATE yourTable
SET
    Credits = -Debits,
    Debits = -Credits;

【讨论】:

    【解决方案2】:

    您的示例数据暗示逻辑是交换和否定借方和贷方值:

    UPDATE yourTable
    SET
        Credits = -1.0 * Debits,
        Debits = -1.0 * Credits;
    

    Demo

    【讨论】:

    • 感谢蒂姆的回答,这很有帮助!如果我在我想要保持不变的原始表中添加了额外的行(借方 = 200 和贷方 = 0)怎么办?
    • 要回答这个问题,您必须提供记录何时更新或不更新的规则。对于这种确切的情况,请将WHERE Debits <> 200 OR Credits <> 0 添加到我上面的答案的末尾。
    • 非常感谢:)
    猜你喜欢
    • 2021-04-26
    • 2012-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多