• 締切済み

SQLがわかりません

初めての投稿です。 SQL自体があまり理解していないので、どのようなSQLになるのかわかりません。 使用DB HIRDB テーブル名   |キー ファイルマスタ |A,B ユーザマスタ  |C ファイルサブ1  |A,C ファイルサブ2  |B,C 内容 ファイルマスタのキーAを使いファイルサブ1のファイル名を取得 またキーBを使いファイルサブ2のファイル名を取得します。 そして、ファイルサブ1・ファイルサブ2には ユーザマスタのキーCがありキーCを使いユーザー名称を取得します。 表示はこのようにしたいです。 ファイルサブ1ユーザ名称|ファイルサブ1ファイル名|ファイルサブ2ユーザ名称|ファイルサブ2ファイル名 わかりづらい説明かもしれませんが、宜しくお願いします。

みんなの回答

回答No.1

RDBMS名だけでなく、バージョンも明記するようにしてください。 表の構成列が、質問文では分かりづらいです。ファイル名は、どこで管理されているのですか? また、どういう母体データから、どういう結果を得たいのでしょうか?

komata_orz
質問者

お礼

すいません、解決しました。 それと、忠告ありがとうございます。 今度、質問することがありましたら忘れずにバージョンを明記し、どこで管理されているか詳しく書きたいと思います。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • SQLの作成について

    SQLの作成について 以下のようなDBがあるとします。 ---------------------- DB1(マスタ)  区分   フラグ  名称   A    1    男   A    2    女   B    1    車   B    2    飛行機   B    3    電車   C    1    コンビニ   C    2    スーパー   C    3    百貨店   D    1    デスクトップ   D    2    ノート ---------------------- ----------------------- DB2  区分1 フラグ1 名称1 ・・・ 区分4 フラグ4 名称4   A   2           D    1 ----------------------- DB2の区分とフラグから、DB1を参照して 取ってきたDB1の名称をDB2に書き込みたいです。 名称の1つ毎に、SQLを発行し、それぞれ名称を取得するなら where DB1.区分=DB2.区分 and DB1.フラグ = DB2.フラグ みたいな感じでそのまま出来ると思いますが、 今は、1つのSQLでDB2の複数の名称を一気に取得したいと考えてます。 どのようなSQLが良いのでしょうか

  • SQLの記述について

    SQLの記述で Aトランザクションテーブル(以後Aテーブル)とBマスタテーブル(以後Bマスタ)が有り, AテーブルにBマスタの内容を反映させ或る条件のデータだけ抽出は可能でしょうか? 例 Aテーブルの内容をBマスタを検索しデータがAの場合のみ抽出 Aテーブル        Bマスタ キー  データ     キー  データ      001 0001    001 A 001 0002    002 B 002 0003    003 A 001 0004    004 C 002 0021 003 0005 004 0001 実行結果 キー  データ 001 0001 001 0002 001 0004 003 0005 上記の結果のように,Aテーブルの内容からBテーブルを見て条件を判断しての抽出は可能でしょうか?

  • SQLについて教えてください

    お世話になります。 SQLについて教えてください AテーブルとBテーブルからCテーブルを作成したいのですが、 KEYをキーにAテーブルのIDが1で、YYMMが一番新しい項目(最大の項目)を 取得し、Cテーブル作成したいのですが、どのようにするのでしょうか? Aテーブル    Bテーブル   Cテーブル KEY ID yymm   KEY     KEY YYMM AAA 0 200612  AAA     AAA 200611 AAA 1 200611  BBB     BBB 200611 AAA 1 200609 BBB 0 200611 CCC 1 200611

  • SQLの勉強中の者です。

    SQLの勉強中の者です。 調べてもよく分からなかったので、分かる方、ご教授いただけると嬉しいです。 ●DBテーブル情報  A B C ---------------  1 1 1  1 2 1  1 2 2 ●取得条件 「A」=1 かつ「B」=1or2 であり、かつ 「B」=1の取得データと「B」=2の取得データで「C」が共通していること 上記例で言えば、テーブルの1、2行目を取得したいのですが… どんなSQL文を使えば良いのか、ヒントだけでも良いのでいただけないでしょうか。 どうぞ宜しくお願いします。

  • 場合によって条件を変えるSQL

    ORACLE環境下、SQLにて以下のような条件でデータを取得したいです。 AテーブルとBテーブルを結合して、Bテーブルから名称を取得する。 <Aテーブル> id (key) 番号1 番号2 A01  001  n0001 A02  null  n0002 <Bテーブル> code(key) 名前  番号1 番号2 c0001   太郎  001  n0001 c0002   次郎  002  n0002 (1)A.番号が入力されていれば A.番号1=B.番号1 AND A.番号2=B.番号2を条件にする (2)A.番号が入力されていなければ A.番号=B.番号を条件からはずす。 A.番号2=B.番号2 のみで検索する。 <欲しい結果> A01→太郎を取得 A02→次郎を取得 入力されていたら条件に加え、入力されていなかったら 条件から外す、というSQLを教えていただけないでしょうか。 よろしくお願いいたします。

  • SQL(SELECT文)を教えてください

    SQL Serverを勉強中です。 以下のようなテーブルに、同一の日付に複数の名称・値のセットが存在します。 Date(日付)  Name(名称) Value(値) 20130101      a      10 20130101      b      20 20130101      c      30 20130202      a      5 20130202      b      10 20130202      c      15 このデータを、SQLのSELECT文で取得し、以下のような表を作りたいと考えています。 a b c 20130101 10 20 30 20130202 5 10 15 行が日付、列が名称になっています。 このように取得できるSQL文を教えてください。よろしくお願いします。

  • SQLで取得可能でしょうか

    SQLで取得可能でしょうか 今2つのテーブルがあるとします。 ---------------------- テーブル1  KEY    項目   1   テスト1   2   テスト2   3   テスト3 ----------------------- ---------------------- テーブル2   CD  名称    1   か   1   き   2   さ   2   し   2   す   3   た ----------------------- テーブル1のKEYはキーで重複しません。 テーブル2のCDは重複しますが、内容はテーブル1のKEYとリンクします。 今、テーブル1のKEY1件につき、データを1件取得したいのですが、 テーブル2の名称も取得したいです。 データは1件しか取得しない為、名称は、特定文字(例として/)で 区切って取得したいです。 期待したい結果 ----------------------  KEY  名称   1  か/き   2  さ/し/す   3  た ---------------------- このような取得は可能でしょうか? 尚、SQLの発行は1回のみで行いたいです。 よろしくお願いします。

  • こんなSQLを教えてください

    こんなSQLを教えてください <更新前> テーブル1 |キー|コード| | 1|  a| | 2|  b| | 3|  c| テーブル2 |キー|コード| | 2|  B| | 4|  D| <更新後> テーブル1 |キー|コード| | 1|  a| | 2|  B| | 3|  c| こんなふうに テーブル1と同じデータがテーブル2にあったら テーブル1を書き換えるUPDATE文を教えてください

  • SQLについて教えてください

    お世話になっております。 以下、取得したい内容です。 この内容に対して、どのようにSQLを書けばよいか良いか教えて頂きたいです。 (1)DBの全テーブルに対して特定のカラムを取得したい。(カラム名はA,Bとする) (2)取得したカラム.Aに格納されている各値に対して、カラム.Bの各レコードの項目には何の値が格納されているか知りたい。 DBはオラクルですが、オラクルでしか使えないSQL構文はつかないようにしたいです。 自分で考えたSQLは、 SELECT A,B FROM * GROUP BY A,B ですが、そもそも全テーブルを指定する際に使用するのが、「*」では正しくないような気もします。 説明がつたなくて申し訳ございません。 宜しくお願い致します。 ・テーブルイメージ テーブル.test1 +--------+------+ | No | A | B | +--------+------+ | 01 |AA| 1 | | 02 |AA| 1 | | 03 |AB| 2 | | 04 |AB| 2 | | 05 |AC| 3 | | 06 |AC| 3 | | 07 |AC| 3 | +--------+------+ テーブル.test2 +--------+------+ | No | A | B | +--------+------+ | 01 |AA| 1 | | 02 |AA| 1 | | 03 |AB| 2 | | 04 |AB| 2 | | 05 |AC| 1 | | 06 |AC| 3 | | 07 |AC| 3 | +--------+------+ テーブル.test3 +--------+------+ | No | A | B | +--------+------+ | 01 |AA| 3 | | 02 |AA| 1 | | 03 |AC| 2 | | 04 |AC| 3 | +--------+------+

  • ある条件でのSQLの取得方法について

    以下の条件でのSQLのデータの取得方法が分かりません。 2つのテーブルがあるとします。 ・テーブルA キー   項目1 10     X 20     Y ・テーブルB キー  項目2  項目3 10     5    C 10     6    D 12     6    E ここで取得する条件として ■テーブルAにあるのは、必ず取得します。 ■テーブルAのキーとテーブルBのキーは繋がり、繋がったテーブルBの情報は  別レコードとして取得します。 ■テーブルAのキー1つに対して、テーブルBのキーは無いかも知れないし、  複数件あるかも知れません。  無い場合はテーブルAの情報のみを出力し、複数件ある場合はその全てを出力します。 ■テーブルBの項目2が同じ値のデータがある場合、テーブルBを出力したレコードと  同じレコードに、項目2が同じデータの情報を出力します。  項目2が同じデータが無い場合はこの情報は出力しません。  項目2が同じ値のデータは最大2件しかありません。 上記の例の場合に出力したい結果 ・出力テーブルC キー  フラグ   項目1  項目2  項目3   項目2が同じキー  項目2が同じ値 10  テーブルA   X 10  テーブルB         5    C 10  テーブルB         6    D        12            E 20  テーブルA   Y (テーブルC のフラグとは、テーブルAの情報かテーブルBの情報かを示します) これを出来ればSQL、出来なければPL/SQLで取得したいのですが どちらの場合でも取得の方法に悩んでいます。 どのような方法で取得できるのでしょうか?