1

テーブル内のサブクエリの結果を合計する方法を知りたいです。たとえば、次の 2 つのクエリを 1 つのステートメントにまとめたいとします。

SELECT SUM(A) - (SELECT SUM(B) FROM MyTable WHERE C<A))
FROM MyTable WHERE B>C;

SELECT SUM(B) - (SELECT SUM(C) FROM MyTable WHERE D<F))
FROM MyTable WHERE B=C;
4

1 に答える 1

3

文字通り、それらを一緒に追加できます。

SELECT (SELECT SUM(A) - (SELECT SUM(B) FROM MyTable WHERE C<A))
                         FROM MyTable WHERE B>C)  
        +
        (SELECT SUM(B) - (SELECT SUM(C) FROM MyTable WHERE D<F))
                          FROM MyTable WHERE B=C)

と同じ:

SELECT 5 + 3

サブクエリなしでこれを行うために、または少なくともそれをよりきれいにするために、おそらくいくつかの CASE ステートメントを使用することもできます。

SELECT SUM(CASE WHEN B > C THEN A ELSE 0 END) - SUM(CASE WHEN C < A THEN B ELSE 0 END)
       +
       SUM(CASE WHEN B = C THEN B ELSE 0 END) - SUM(CASE WHEN D < F THEN C ELSE 0 END)
FROM MyTable
于 2013-06-12T17:14:43.650 に答える