私は2つのテーブルを持っています。まず、販売テーブル:
Salesid Amount Productid Monthid
20 10 1 201307
15 25 1 201301
40 20 5 201303
注: 1000 行以上。
次に、製品テーブルがあります。
Productid Description Product_elemid
1 AAA 24
2 BBB 57
5 CCC 23
1 AAA_ACE 25
注:約 100 行。
ここで、これら 2 つのテーブルのデータを表示したいと思います。これは私が現在持っているものです:
Select p.description
case ( when s.monthid between 201301 and 201307 then sum(s.amount) else 0 end)
case ( when s.monthid between 201303 and 201305 then sum(s.amount) else 0 end)
from sales s, product p
where s.productid = p.productid
and p.productid in ('1, '2', '5')
group by p.description
3列のテーブルを取得します:
p.description case 1 values case 2 values
ここまでは順調ですね。ここで、2 つのケースの値の差を示す別の列も必要です。
これをケースステートメントに書いてもいいですか、それとももっと良い方法はありますか?
注 : ここで自己結合を実行することは、行数が多く、表示に時間がかかりすぎるため、望ましくありません。
ありがとう。