-3

我正在尝试获取 sql 中的两列的总数,如下所示

SELECT sum(aaanum) aaa, sum(bbbnum) bbb, sum(aaa+bbb) ccc
FROM myTable;

但是,当我这样做时,我在“字段列表”中得到未知列“aaa”

当我这样做时,我得到了我期望的结果

SELECT sum(aaanum) aaa, sum(bbbnum) bbb, sum(aaanum+bbbnum) ccc
FROM myTable;

但是我想像在第一个示例中所做的那样做,因为我为示例代码输入的内容非常简单我希望能够将其应用于更复杂的示例而无需重复,因为这将很难维护如果进行任何更改,我将不得不在两个地方进行更改。

做这个的最好方式是什么?

4

2 回答 2

2

您可以获得的最接近的是对查询的查询:

SELECT
  aaa,
  bbb,
  aaa+bbb ccc
FROM (
  SELECT
    sum(aaanum) aaa,
    sum(bbbnum) bbb
  FROM myTable
) x

仅供参考,末尾的“x”是内部查询结果的别名,它需要在语法上正确。

于 2013-10-08T20:21:16.943 回答
0

你可以这样做

Select a, b, sum(a+b)
from (select sum(aaanum) a, sum(bbbnum)
      from mytable)
group by a, b

只需要先在子选择中计算总和。

于 2013-10-08T20:23:41.893 回答