質問 |
||
| QNo.3876593 | 異なるキーで取得したデータの合成 | |
|---|---|---|
| 質問者:nakatushi |
SQLに関して質問です。 以下のようなテーブルA、Bがあった場合、 【テーブルA】 カラム1 カラム2 ------------------------ AAA CCC BBB DDD 【テーブルB】 カラム3 カラム4 ------------------------ AAA 1 BBB 2 CCC 3 DDD 4 次のような結果を得るにはどのようなSQL文を記述すれば良いでしょうか? 【求める結果】 カラム1 カラム2 カラム4(1) カラム4(2) --------------------------------------------------- AAA CCC 1 3 BBB DDD 2 4 非常に初歩的な質問かもしれませんが宜しくお願いいたします。 |
|
困り度:
|
||
| 質問投稿日時: 08/03/19 16:54 |
||
回答 |
|
| ANo.2 | SELECT COL1,COL2, (SELECT COL4 FROM TABLEB WHERE COL3=COL1) COL4_1, (SELECT COL4 FROM TABLEB WHERE COL3=COL2) COL4_2 FROM TABLEA |
|---|---|
| 回答者:nora1962 | |
| 種類:回答 どんな人:一般人 自信:参考意見 |
|
| 回答日時: 08/03/19 18:28 |
|
| |
| この回答へのお礼 | お礼遅くなりました。 回答ありがとうございました。 教えていただいた方法ではSELECT COL4 FROM TABLEB WHERE COL3=COL1(or COL2) の箇所でCOL1(or COL2)の指定でエラーとなりました。 今回は以下の方法で実施いたしました。 SELECT A.カラム1,A.カラム2,B.カラム4,C.カラム4 FROM テーブルA AS A,テーブルB AS B,テーブルB AS C WHERE B.カラム3 = A.カラム1(+) AND C.カラム3 = A.カラム2(+) |
回答良回答20pt |
|
| ANo.1 | SELECT T.F1, T.F2, Max(T.F3) AS F3, Max(T.F4) AS F4 FROM [SELECT T1.F1 AS F1, T1.F2 AS F2, T2.F2 AS F3,0 AS F4 FROM T1 LEFT JOIN T2 ON (T1.F1 = T2.F1) UNION SELECT T1.F1 AS F1, T1.F2 AS F2, 0 AS F3,T2.F2 AS F4 FROM T1 LEFT JOIN T2 ON (T1.F2 = T2.F1)]. AS T GROUP BY T.F1, T.F2; マイナスが無い事が前提。 カラム3、4が「文字列」の場合は「0」を「""」(空文字列)にする事。 |
|---|---|
| 回答者:chie65536 | |
| 種類:回答 どんな人:一般人 自信:参考意見 |
|
| 回答日時: 08/03/19 17:21 |
|
| |
| この回答へのお礼 | お礼遅くなりました。 回答ありがとうございました。 教えていただいた方法でも解決いたしましたが、 今回は以下の方法で実施いたしました。 SELECT A.カラム1,A.カラム2,B.カラム4,C.カラム4 FROM テーブルA AS A,テーブルB AS B,テーブルB AS C WHERE B.カラム3 = A.カラム1(+) AND C.カラム3 = A.カラム2(+) |