Sql 用同一行中的差分标准减去两个值

Sql 用同一行中的差分标准减去两个值,sql,sql-server,sql-server-2012,Sql,Sql Server,Sql Server 2012,在这个表中,我们看到同一日期的不同交易,一些交易Dr和一些交易Cr。我需要Cr-Dr作为每个日期的交易金额。 请看截图 结果将是- 您可以使用case when和group by select date, sum(case when drcr = 'CR' then amount when drcr = 'DR' then -amount else 0 end) from my_table group by d

在这个表中,我们看到同一日期的不同交易,一些交易Dr和一些交易Cr。我需要Cr-Dr作为每个日期的交易金额。 请看截图

结果将是-


您可以使用case when和group by

select date, sum(case when drcr = 'CR' then amount 
                  when drcr = 'DR' then -amount 
                    else 0 end)
from my_table 
group by date 

作为@scaisEdge,但您需要一笔金额

select date, sum(case when drcr = 'CR' then amuont else (-1 * amount) end) as tran_amt
from my_table 
group by date 

这应该很清楚,但它的工作方式是在每个日期的总额中添加贷项和减记借项。

请参见:不要使用图像。在此处复制/粘贴值,或者更好,为我们提供制作表和值的代码。您忘记了Sum,谢谢您的宝贵意见。。加和打字removed@anonyXmous对的a你的问题。。如果生活不好笑的话,那将是悲惨的-嘘。。。真的。。幸运的是,这里有一些有趣的东西创建数据,运行/测试它,你会在那里看到奥蒙特。我们也应该分享赏金。hahaI不喜欢这部分:“-1*amount”,因为这是一个额外的计算,但仍然有效。@anonyXmous——我怀疑它——记住这是编译的。我希望在数字量前面加上
“-”
(如果它在给定的平台上工作)将转换为
“-1*”
——我认为我的代码更清晰一些。但我并没有和它结过婚——这可以从我对斯盖里奇的回答投的赞成票中看出。