• ベストアンサー
  • 暇なときにでも

SQL文 テーブル1つに複数のデータ

お世話になっております。 SQLでの質問です。 --テーブル---------- F_1F_2 AAABBB AAACCC BBBXXX CCCDDD DDDYYY 1.F_1のAAAを条件にF_2のBBB・CCCを取得し、 F_1のBBB・CCCと、F_2のXXXとDDDを取得します。 2.次に、取得したF_2のXXX・DDDを条件に、F_1のDDD、F_2のYYYを取得します。 これを1つのSQLで実行したいのですが、副問合せを駆使しても、良いSQLが思い浮かびません。 有識者の方、ご享受頂きたいです。 宜しくお願い致します。

共感・応援の気持ちを伝えよう!

  • 回答数1
  • 閲覧数182
  • ありがとう数0

質問者が選んだベストアンサー

  • ベストアンサー
  • 回答No.1

いまいちルールがわかんないんだけど、 > 2.次に、取得したF_2のXXX・DDDを条件に、F_1のDDD、F_2のYYYを取得します。 XXXはどう条件に絡めてるの?? 末端が欲しいなら select F_1, F_2 from ( select F_1, F_2, Level, connect_by_IsLeaf as isLeaf from TBL start with F_1 = 'AAA' connect by F_1 = prior F_2 ) where isLeaf=1 一番深いとこが知りたいなら select F_1, F_2 from ( select F_1, F_2, Level from TBL start with F_1 = 'AAA' connect by F_1 = prior F_2 order by Level desc ) where rownum=1 かな?

共感・感謝の気持ちを伝えよう!

質問者からの補足

ご返信ありがとうございます。 私の情報が足らず申し訳ないです。 まずDBはOracleなのですが、ODBC接続でAccessクエリとなっておりました。 投稿が削除できないので、Accessで再質問させて頂きます。 大変申し訳なかったです。 ありがとうございました。

関連するQ&A

  • AccessSQL 1つのテーブルに複数のデータ

    お世話になっております。 アクセスSQLでの質問です。 --テーブル---------- F_1 F_2 AAA BBB AAA CCC BBB XXX CCC DDD DDD YYY 1.F_1のAAAを条件にF_2のBBB・CCCを取得し、 F_1のBBB・CCCと、F_2のXXXとDDDを取得します。 次に、取得したF_2のXXX・DDDを条件に、F_1のDDD、F_2のYYYを取得します。 つまり、AAAを取得した結果、SQL一つで、上記テーブルデータをF_1:AAA以外、取得したい要件です。 有識者の方、ご享受頂きたいです。 宜しくお願い致します 【自力で考えた結果】 -------------------------- select F_MenuCD,F_ZaiCD from [TABLE] where F_MenuCD IN ( SELECT F_ZaiCD FROM [TABLE] WHERE F_MenuCD IN ('AAA') ); F_1 F_2 BBB XXX CCC DDD を取得するSQLは上記でいけそうなのですが、 DDD YYY を、1つのSQLで取得したいのです。

  • 分岐SQLを一発のSQLで実現したい

    【データベース:SQLServer2005】 SQLのアドバイスを頂きたいです。 【テーブル】 テーブル名:Table1 フィールド名:種類、キー1、キー2 テーブル名:Table2 フィールド名:種類、キー1、キー2 テーブル名:Table3 フィールド名:種類、キー1、キー2 【データ】 Table1 種類、キー1、キー2 001  AAA  BBB 001  AAA  CCC 001  AAA  DDD Table2 種類、キー1、キー2 002  AAA  BBB 002  AAA  CCC NULL  AAA  DDD Table3 種類、キー1、キー2 NULL  AAA  BBB NULL  AAA  CCC NULL  AAA  DDD これをUNIONで取得します。 種類、キー1、キー2 001  AAA  BBB 001  AAA  CCC 001  AAA  DDD 002  AAA  BBB 002  AAA  CCC NULL  AAA  DDD NULL  AAA  BBB NULL  AAA  CCC 実現したいのは、 1)同種類、キー1、キー2のデータで、 種類にNULLが含まれていたら、NULLのデータは取得しない 2)同種類、キー1、キー2のデータで、 種類にNULLしかないデータは、取得する 001  AAA  BBB 001  AAA  CCC 001  AAA  DDD 002  AAA  BBB 002  AAA  CCC NULL  AAA  DDD →いる NULL  AAA  BBB →いらない NULL  AAA  CCC →いらない ↓結果 001  AAA  CCC 001  AAA  DDD 002  AAA  BBB 002  AAA  CCC NULL  AAA  DDD 上記を実現する為、UNION後のSQLでも構わないので、 一発のSQLで取得する事は可能でしょうか? 有識者の方にご享受頂ければ幸いです。 どうぞ宜しくお願い申し上げます。

  • SQL文を教えてください。

    すみません、SQLを教えてください。 ID, 名前の2つのフィールドを持つテーブルがあります。 中身は以下のように入っています。 1, AAA 2. AAA 2, BBB 3, CCC 3, AAA 4, DDD 5, EEE, 5, DDD これを、名前のダブリをスキップしながら、 IDの大きな順番に名前を取り出したいのです。 結果は、以下のようになればいいです。 DDD EEE AAA CCC BBB どのようなSQLを組んだら実現できますか? よろしくお願いいたします。

  • SQL文について

    お世話になります。 Oracle初心者です。 二つのテーブルから下記の様にデータを抽出 したいのですが、その方法をご教授くださいます様、 宜しくお願い致します。         記 テーブル1 品番  全長 aaa 1111 bbb 2222 ccc 3333 テーブル2 品番  入数 bbb 5 ddd 6 ggg 7 SQL結果 品番 全長  入数 aaa 1111 bbb 2222 5 ccc 3333 ddd 6 ggg 7

  • SQLについての質問です

    SQLの質問です。(Oracle) 二つのテーブル T1, T2 に、それぞれ三つのカラム A, B, C があり、A, B の値が同じである行においてT1のCからT2のCへ値をコピーするSQLを教えてほしいです。 以下、そのデータ例です。 テーブル T1 A B C --------- 1 AAA 10 2 BBB 20 3 CCC 30 テーブル T2 A B C --------- 1 AAA 0 2 XXX 0 4 YYY 0 この場合、結果としてテーブル T2は1行目だけがカラム Cの値がT1からコピーされ A B C --------- 1 AAA 10 2 XXX 0 4 YYY 0 としたいです。

  • SQL:Access:プライオリティが異なる2つのテーブルのマージ

    みなさん、こんばんは。 下記のような TBLmain、TBLsub という2つのテーブルをマージするにあたって、 主キーが同じであるレコードがそれぞれのテーブルに存在する場合には、 TBLmain を優先させ、TBLresult のような結果を得たいのですが、 どのように SQL を記述すればよいのでしょうか? DB は Access2000 を使用しています。 どうぞ、よろしくお願いいたします。 TBLmain 1 aaa 4 bbb 8 ccc TBLsub 1 XXX 2 TTT 3 YYY TBLresult 1 aaa 2 TTT 3 YYY 4 bbb 8 ccc

  • MySQLで日毎の最高点を取得するSQLについて

    何時もお世話になっております。 日付ごとの最高ポイントを取得する 効率の良いMySQLでのSQLをご教授下さい。 T_DATA flg kbn point biko date ------------------------------ true 3 90 NNN 20141231 true 1 80 XXX 20150101 true 2 60 YYY 20150101 true 3 70 XXX 20150101 true 1 40 xxx 20150201 true 2 60 yyy 20150201 true 1 60 AAA 20150301 true 2 90 BBB 20150301 true 3 40 CCC 20150301 true 1 60 aaa 20150401 true 2 70 bbb 20150401 true 3 30 ccc 20150401 false 4 90 ddd 20150401 ■欲しい状態 kbn point biko date ----------------------- 2 70 bbb 20150401 2 90 BBB 20150301 2 60 yyy 20150201 1 80 XXX 20150101 (1)dateカラム毎にpointカラムが最大のデータを取得したいです。 (2)flgカラムがtrueのデータのみ取得したいです。 (3)dateカラムが降順になるよう取得したいです。 (4)dateカラムは、直近4日分取得したいです。 以上の条件で取得したく思います。 どうぞ、よろしくお願い致します。

    • ベストアンサー
    • MySQL
  • SQLについて

    aaa bbb ccc ddd eee ggg hhh ---------------------------------------------- 111 111 111 111 111 111 111 112 112 112 112 112 112 111 112 113 113 113 113 113 111 114 114 114 114 114 114 111 114 114 114 114 114 114 112 114 115 115 114 114 115 111 114 115 115 114 114 115 112 116 116 116 116 116 116 111 116 116 116 116 116 116 112 116 116 116 116 116 117 111 116 116 116 116 116 117 112 118 118 118 118 118 118 118 上記のようなデータより、SQLのSELECTを使用して、以下のように抽出したいです。 抽出条件は以下が全て満たしているものとなります。 ・aaa,ccc,ddd,eee,gggが重複、hhhが小さいもの ・bbbが異なるもの aaa bbb ccc ddd eee ggg hhh ---------------------------------------------- 112 112 112 112 112 112 111 ・・・(1) 112 113 113 113 113 113 111 ・・・(1) 114 114 114 114 114 114 111 ・・・(2) 114 115 114 114 114 115 111 ・・・(2) (1)はaaa,ccc,ddd,eee,gggが重複、bbbが異なるため抽出対象 (2)はaaa,ccc,ddd,eee,gggが重複、bbbが異なるため抽出対象  また、hhhが小さいもの 以上、よろしくお願いします。

  • 異なるキーで取得したデータの合成

    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 非常に初歩的な質問かもしれませんが宜しくお願いいたします。

  • エクセル2007 複数セルのデータを1つに連結

    いつもお世話になります。 エクセルで、複数セルのデータを1つに連結して表示させる方法を教えてください。 データ件数が多い(1000件以上)ため、 関数(CONCATENATE)や、連結記号(&) は、セルを1つずつ選択する時間が掛かるため、 その他に方法があれば教えてください。 また関数(CONCATENATE)でセル範囲をドラッグなど簡単に指定できる方法があれば教えてください。 【やりたいこと】  A列が同じデータの場合、B列の値をC列のセルに連結して表示させたい 【イメージ】 A列 B列 C列 xxx aaa aaa bbb ccc ddd eee xxx bbb xxx ccc xxx ddd xxx eee yyy ffff fff ggg hhh yyy gggg yyy hhh zzz iii iii jjj zzz jjj