如果按条件 sum = 0,则 SQL 命令

问题描述

在我的表中,我有凭证、维度和金额。每个 Voucher 都是独一无二的,而且每两个 Voucher 的 Dimension 通常是相似的。每个维度的每个凭证通常也有相同的正负金额。我正在寻找一个命令,它将排除汇总为 0 的每个维度。

到目前为止我有

Select Dimension,Sum(Amount)
From "table"
Group by Dimension;

这给了我一个表格,我可以在其中查看每个维度的汇总金额。

如何扩展它以给我带有不汇总为 0 的维度的凭证?

实际表包含 200 000 行,但我做了一个例子来说明我从什么开始以及我希望得到什么结果:

[表格]

1

[结果]

2

解决方法

可以这样

仅过滤 SUM 等于 0 的行

Select Dimension
From "table"
Group by Dimension
Having Sum(Amount) = 0

并将上述查询作为子查询,以排除 SUM 等于 0 的维度

SELECT *
FROM "table"
WHERE Dimension NOT IN (
    Select Dimension
    From "table"
    Group by Dimension
    Having Sum(Amount) = 0
)

它会从“表”中返回完整的记录。

至少它应该适用于 MS SQL DBMS。

,

你可以试试这样的:

  const key = esriLayer._url.path;
  const token = await this.tokenAssurance(key);
  esriLayer._url.query.token = token;