0

次のようなクエリがあります。

select      sum(t1.qty) t1Total, sum(t2.qty) t2Total, sum(t1.qty - t2.qty) difference
from        t1 full join 
            t2 on t1.date = t2.date and t1.chain = t2.chain

日付に完全結合を実行したいのですが、チェーンの内部結合を実行します。つまり、一方のテーブルにはもう一方のテーブルにはないチェーンがあり、余分なチェーンが合計に含まれることは望ましくありませんが、両方のテーブルにあるチェーンからのすべての日が考慮されるようにしたいのです。

それを行う最も簡単な方法は何ですか?

4

1 に答える 1

0

合計内でcaseステートメントを使用します。内部テーブルでチェーンがnullの場合は、ゼロに設定します。例えば:

sum(case when t2.chain is null then 0 else t1.qty end) as t1Total
于 2012-06-18T01:18:01.863 に答える