【问题标题】:Subtract values from one column based on values in another (TSQL)根据另一列中的值从一列中减去值(SQL)
【发布时间】:2021-02-22 09:28:29
【问题描述】:

我有一个表格,我需要根据应用于另一列的条件减去一列中的值。例如,我想用代码fsttrd 减去值,意思是(12 - 23)。 我不想声明单独的变量。是否可以通过查询来做到这一点?

【问题讨论】:

    标签: sql tsql aggregate-functions


    【解决方案1】:

    一种方法是条件聚合:

    select sum(case when code = 'fst' then value else - value end)
    from t
    where code in ('fst', 'trd');
    

    假设每个代码只有一行,您也可以使用join

    select tf.value - tt.value
    from t tf join
         t tt
         on tf.code = 'fst' and tt.code = 'trd'
    

    【讨论】:

    • 你说这是一种方法。你能提供替代品吗?谢谢。
    • 如果我想划分这些相同的值怎么办?我用你在答案中给出的第二个选项做到了。我不确定这是不是最佳决定
    • @Yana 。 . .那么你会有一个不同的问题。 . .但你可以使用:sum(case when code = 'fst' then value end) / sum(case when value = 'trd' then value end).
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-12
    • 2021-09-10
    • 1970-01-01
    相关资源
    最近更新 更多