以下のテーブルがあります。
tableA
dt | りんご | 都道府県 |
---|---|---|
2018-01-01 | 2 | 北海道 |
2018-01-01 | 4 | 青森 |
2018-01-02 | 1 | 北海道 |
追加の集計依頼があって以下の項目が追加されたとします。
tableB
dt | みかん | 都道府県 |
---|---|---|
2018-01-01 | 1 | 北海道 |
2018-01-02 | 1 | 青森 |
2018-01-02 | 5 | 北海道 |
今は両方のテーブルを
lang
1select 2 NVL(a.dt, b.dt) as dt, 3 COALESCE(a.りんご, 0) as りんご, 4 COALESCE(b.みかん, 0) as みかん, 5 NVL(a.都道府県, b.都道府県) as 都道府県 6from 7 tableA a 8 full outer join tableB b 9 on a.日付 = b.日付 10 and a.都道府県 = b.都道府県
というコードでみかんのカラムを追加しています。以下のようになります。
dt | りんご | みかん | 都道府県 |
---|---|---|---|
2018-01-01 | 2 | 1 | 北海道 |
2018-01-01 | 4 | 0 | 青森 |
2018-01-02 | 1 | 5 | 北海道 |
2018-01-02 | 0 | 1 | 青森 |
さらに追加で集計依頼があって項目の追加があった場合、上記のテーブルを作ってから
full outer joinをして項目を追加しています。
すごく冗長的なコードになってしまうのですが、もっとシンプルで賢い方法はないでしょうか。
また、full outer joinを以下のように2回以上続けることは可能なのでしょうか。
lang
1from 2 tableA 3 full outer join tableB 4 on ... 5 full outer join tableC 6 on ...
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/07/30 14:41
2018/07/30 14:50
2018/07/30 15:00
2018/07/31 13:28
2018/07/31 14:15
2018/07/31 14:37
2018/07/31 14:47
2018/08/01 13:43