SQL Server查询以获得结果

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL Server查询以获得结果相关的知识,希望对你有一定的参考价值。

我具有如下表结构

id    pid   amount   drcr    residce  
1     33    1000         1        55  
2     32    2000         2        44  
3     33    1500         2        54

这里我想用drcr计算总和,返回值更大的值对于前。 1500 > 100,因此它应该为total = 500返回drcr = 2pid = 33我尝试使用Google搜索的内容,但一无所知。

答案

我认为您正在寻找条件聚合的形式

SELECT pid, SUM(CASE WHEN drcr = 2 THEN Amount ELSE -Amount END) 
FROM
(
  VALUES
  (1,     33,    1000,         1,        55),  
  (2,     32,    2000,         2,        44),  
  (3,     33,    1500,         2,        54)
) T(id, pid, amount, drcr, residce)
GROUP BY pid

这里是db<>fiddle

以上是关于SQL Server查询以获得结果的主要内容,如果未能解决你的问题,请参考以下文章

Microsoft SQL Server 代码片段收集

如何在纯 SQL 中转换查询结果以获得更好的可读性

如何在 SQL Server Management Studio 中编辑结果网格中的数据

如何编写此查询以在 Sql Server 中获得更好的性能?删除子字符串行

查询 sql server 2005 以获得不同组的第 95 个百分位

SQL Server Management Studio中的垂直选项卡 - 并排查询和结果?