dポイントプレゼントキャンペーン実施中!

SQLite バージョン3.7.10 を使用しています。
テーブルの構成などはこちらをご覧ください
http://ideone.com/T50DH
次のような条件で結果を出力すると、

select sum(t5.amount * (t4.percent / 100.0)) result from
(
(
select strftime('%Y', date) year, t2_key, t3_key, amount
from t5
where strftime('%Y', date) = '2011'
) t5
inner join t2 on (t2.key = t5.t2_key and t2.name = 't2_name1')
inner join
(
select t4.* from t4
inner join t1 on (t4.t1_key = t1.key and t1.name = 't1_name1')
) t4
on (t5.t3_key = t4.t3_key and t5.year = t4.year)
);

'2011'、't1_name1'、 't2_name1'
の計算結果が出力されます。
例えばこの条件で、 '2011'ではなくて'2012'の計算結果を得たければ
'2012'、't1_name1'、 't2_name1'
の値をいちいち手動で入力してその都度求めれば出来るとは思いますが、
この3つの条件を全パターン出力してくれるようなSQL文を書くことはできないでしょうか?
例えば
'2011'、't1_name1'、 't2_name1' の計算結果12300.0
'2011'、't1_name1'、 't2_name2' の計算結果・・・
'2011'、't1_name2'、 't2_name1' の計算結果・・・
'2011'、't1_name2'、 't2_name2' の計算結果・・・
'2012'、't1_name1'、 't2_name1' の計算結果・・・
'2012'、't1_name1'、 't2_name2' の計算結果・・・
'2012'、't1_name2'、 't2_name1' の計算結果・・・
'2012'、't1_name2'、 't2_name2' の計算結果・・・
というような結果を得たいです。
これはどのようなSQL文になるのでしょうか?

A 回答 (1件)

全パターンというのは、最終的に値が取れないものも含めてでしょうか?


値が取れるものすべて、ならば少し変えるだけで済みます。

http://ideone.com/fQFUC
    • good
    • 0
この回答へのお礼

ご返答ありがとうございます。
なるほど、そのやり方でできました。
ありがとうございます。

お礼日時:2012/10/05 21:20

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!