Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 如何获取一个查询,以根据总数返回某些记录_Sql Server - Fatal编程技术网

Sql server 如何获取一个查询,以根据总数返回某些记录

Sql server 如何获取一个查询,以根据总数返回某些记录,sql-server,Sql Server,我有一个记录集,看起来像这样: Group Number Amount A 11 10 A 12 -15 A 13 20 B 21 -10 B 22 15 B 23 -20 我想要的是一个查询,如果一个组的总量大于零,则返回该组中的所有行 对于A组,总数为15,因此我希望所有记录都包含A组报表。 对于B组,总数为-15,因此不应从B组返回任何记录。尝试以下方法

我有一个记录集,看起来像这样:

Group Number   Amount
A     11        10
A     12        -15
A     13        20
B     21        -10
B     22        15
B     23        -20
我想要的是一个查询,如果一个组的总量大于零,则返回该组中的所有行 对于A组,总数为15,因此我希望所有记录都包含A组报表。 对于B组,总数为-15,因此不应从B组返回任何记录。

尝试以下方法:

     select * from yourTable where [Group] in
     (select [Group] from yourTable group by [Group] having SUM(Amount) > 0)
您可以使用子句来完成以下操作:

SELECT [Group], Number, Amount
FROM (
   SELECT [Group], Number, Amount,
          SUM(Amount) OVER (PARTITION BY [Group]) AS sumOfGroup
   FROM mytable ) t
WHERE t.sumOfGroup > 0

这将是最简单的解决方案