- - PR -
テーブル結合できなくて
1
| 投稿者 | 投稿内容 | ||||||||
|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-03-24 23:53
DBはオラクルを使用しています。
片方のテーブルには ID KUBUN KANE1 ----------------- AA 10 2000 AA 20 1000 AB 30 700 もう片方には ID KUBUN KANE2 ----------------- AA 30 2000 AB 20 1000 で結合して ID KUBUN KANE1 KANE2 ------------------------- AA 10 2000 0 AA 20 1000 0 AA 30 0 2000 AB 20 1000 0 AB 30 700 0 というようなテーブルを作成したいのですが、どうしても作成できません。 だれか、良い結合方法はありませんか。 | ||||||||
|
投稿日時: 2005-03-25 09:00
http://www.seshop.com/se/edu/shikaku/omo/miti/silver_miti26.asp?educat=silver2
| ||||||||
|
投稿日時: 2005-03-25 09:05
おふぃすこまです。
SELECT ID,KUBUN,KANE1,0 AS KANE2 FROM 片方のテーブル UNION SELECT ID,KUBUN,0 AS KANE1,KANE2 FROM もう片方のテーブル 『片方のテーブル』=KANE1フィールドが存在しているテーブル 『もう片方のテーブル』=KANE2フィールドが存在しているテーブル ↑でどうでしょう? あ、ちなみにKANE1、KANE2はNUMBER型として書きましたので、 他の型でしたら、その型に合わせて下さい。 | ||||||||
|
投稿日時: 2005-03-25 09:51
すみません。
記述不足でした。 IDが同じ場合は ID KUBUN KANE1 KANE2 ---------------------------------- AA 10 1000 2000 AA 20 0 1000 このように表示したいのですが。 | ||||||||
|
投稿日時: 2005-03-25 13:41
並び替えがしたいということでしょうか? http://www.mitene.or.jp/~rnk/TIPS_ORCL_SELECT2.htm #質問以前にSQLに対する知識が…。 _________________ | ||||||||
|
投稿日時: 2005-03-25 15:39
SELECT ID, KUBUN,KANE1, 0 AS KANE2 FROM テーブル1 で ID KUBUN KANE1 KANE2 ----------------- AA 10 2000 0 AA 20 1000 0 AB 30 700 0 の結果が得られます。 同様に SELECT ID, KUBUN,0 AS KANE1, KANE2 FROM テーブル2で ID KUBUN KANE1 KANE2 ----------------- AA 30 0 2000 AB 20 0 1000 の結果が得られます。 これをUNION[ ALL]すると ID KUBUN KANE1 KANE2 ----------------- AA 10 2000 0 AA 20 1000 0 AB 30 700 0 AA 30 0 2000 AB 20 0 1000 の結果が得られます。(ここまではおふぃすこまさんが説明済み) で、これをIDとKUBUNでグルーピングして、KANE1,KANE2はSUMすれば ご希望の結果が得られるのでは? SELECT ID, KUBUN, SUM(KANE1), SUM(KANE2) FROM ( SELECT ID, KUBUN,KANE1, 0 AS KANE2 FROM テーブル1 UNION ALL SELECT ID, KUBUN,0 AS KANE1, KANE2 FROM テーブル2 ) GROUP BY ID, KUBUN | ||||||||
1
