- 締切済み
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ファイル名 わかりづらい説明かもしれませんが、宜しくお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- chukenkenkou
- ベストアンサー率43% (833/1926)
関連する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が良いのでしょうか
- ベストアンサー
- Oracle
- 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 Server
- 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を教えていただけないでしょうか。 よろしくお願いいたします。
- 締切済み
- Oracle
- 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 Server
- 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回のみで行いたいです。 よろしくお願いします。
- ベストアンサー
- Oracle
- こんな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文を教えてください
- ベストアンサー
- Oracle
- 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 | +--------+------+
- 締切済み
- Oracle
- ある条件での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で取得したいのですが どちらの場合でも取得の方法に悩んでいます。 どのような方法で取得できるのでしょうか?
- ベストアンサー
- Oracle
お礼
すいません、解決しました。 それと、忠告ありがとうございます。 今度、質問することがありましたら忘れずにバージョンを明記し、どこで管理されているか詳しく書きたいと思います。