如果我从表中求和它们的值= 0,请选择行

时间:2015-06-10 11:37:11

标签: sql sql-server

我们说我有这样一张桌子:

ID.          Location.      Value.          
1.            AGF.           10.00
2.            VHJ.           -20.00
3.            AGF.           -20.00
4.            AGF.           5.00
5.            KLZ.           50.00
6.            AGF.           10.00

我想选择具有相同位置的行,其的总和为零。

在这种情况下,结果应为:

1
3
6

因为这些行都在位置 AGF 中,所以它们总和为0(10 + -20 + 10)。

3 个答案:

答案 0 :(得分:3)

尝试:

Select ID from YourTable where Location IN(
    Select location from YouTable 
    Group By Location 
    Having sum(Value) = 0
)

答案 1 :(得分:0)

您需要使用分组和组过滤器(分别为group byhaving子句)找到零和的所有位置。这可以在子查询中完成。然后选择刚刚选择的位置的所有ID。

select ID
  from YOUR_TABLE
  where Location in (
    select Location
      from YOUR_TABLE
      group by Location
      having sum(Value) = 0
  )

答案 2 :(得分:0)

您可以使用GROUP BYHAVING,如下所示:

Select ID from tablelocation where Location IN(
    Select location from tablelocation 
    Group By Location 
    Having sum(Value) = 0
)