-3

以下に示すように、SQLで2つの列の合計を取得しようとしています

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;

ただし、サンプルコードに入力したものは非常に単純であるため、最初の例で行ったように実行したいと考えています。これを維持するのが難しいため、繰り返しを行わずに、より複雑な例にこれを適用できるようにしたいと考えています。変更が行われる場合は、2 つの場所で変更する必要があります。

これを行う最善の方法は何ですか?

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 に答える