- 締切済み
SQLの解析資料の作り方
仕事のメンテナンスで他の人が作ったSQLの解析を 多く行うのですが、複雑なSQLや10以上のテーブルを 結合して何をどうしているかを、解析した以外の人間が 一目で見て分かるような資料をどのように作ったらいいか 困っています。 何か良い表現方法やまとめかたをご存知の方がいらっしゃったら 教えていただきたいです。 現在は、どのテーブルからどの結合条件でどの抽出条件で などのまとめかたで記述をしているのですが、ぱっと見 わかりづらく、伝わりにくいので解析後時間がたってしまうと わけがわからなくなり困っております。 よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- めとろいと(@naktak)
- ベストアンサー率36% (785/2139)
- めとろいと(@naktak)
- ベストアンサー率36% (785/2139)
関連するQ&A
- SQL作成時のポイント
SQLは簡単なものなら組めますが、副問い合わせなど複雑なものになるとまだまだ苦手なレベルで、3つ以上のテーブル結合などもかなり時間がかかったり、作っているうちに自分でどこまでの条件をつなげたらいいのかが分からなくなってしまいます。 「条件をつける時はここに気をつけて!」など、SQLをつくる時に意識しておいた方がいいこと、作成の考え方などがありましたら、ぜひ教えて下さい。
- ベストアンサー
- Oracle
- ユニオンクエリで期間指定抽出のSQL記述について
いつもお世話になっております。 Access 2007で、「人名集計」テーブルと「資料送付」テーブルがあり、それぞれ、同一のフィールド名でテーブルが作成されております。 これを「発送日」フィールドの昇順で並べ替えながら結合するユニオンクエリを作成しました。 SELECT * FROM 人名集計 UNION ALL SELECT * FROM 資料送付 ORDER BY 発送日; とりあえず、上記のSQLでは動いていますが、このSQLに、 「発送日」の期間を指定して、抽出条件(パラメータ)を加えようとしていますが、うまくいきません。 WHERE句を使って、Between 「最初の日付を入力」 And 「最後の日付を入力」 のような文を SQLの何処にどのように記述すればよいのか、教えてください。 宜しくお願い申し上げます。
- ベストアンサー
- その他MS Office製品
- SQLの参考書(文法書?)
みなさんこんにちは。 SQLの参考書について、教えてください。 下記のテーブル t0、t1、t2 において、 key0 および key1は t1.id への外部キーで、 key は t0.id への外部キーです。 この構成に対して全リストを SELECT しますと、 RESULT に示す結果となります。 上記のような機能の SQL につきましては、 3個以上のテーブルの結合や、 1つのレコードからの同一テーブルへの複数の結合が必要となり、 記述が複雑になると思います。 そこで教えていただきたいのですが、 このような SQL を記述する際に必要な文法を勉強するには、 どのような参考書が良いでしょうか? どうぞ、よろしくお願いいたします。 TABLE: t2 -------------------- id key0 key1 -------------------- 0 2 0 1 3 1 2 4 6 3 5 7 TABLE: t1 -------------------- id key -------------------- 0 3 1 4 2 5 3 6 4 7 5 0 6 1 7 2 TABLE: t0 -------------------- id text -------------------- 0 "00000" 1 "00001" 2 "00002" 3 "00003" 4 "00004" 5 "00005" 6 "00006" 7 "00007" RESULT: -------------------- id text text -------------------- 0 "00005" "00003" 1 "00006" "00004" 2 "00007" "00001" 3 "00000" "00002"
- 締切済み
- その他(データベース)
- SQL・・・分かりません。
SQLの勉強をしています。 仕事の研修で習っているのですが、基礎的なものを学習しましたが 応用したパターンが全く理解ができません。 例としまして ・AテーブルとBテーブルを結合して、データを抽出する ・Aテーブルに存在しているのに、Bテーブルに存在していないデータも抽出する ・しかし、Aテーブルに存在していないのに、Bテーブルに存在しているはデータは抽出しない ☆抽出方法に二パターン存在する 1つ目も全く見当つかずです。ヒントでよいので教えていただけたらと思います。 意味が分からなかったらすみません。何を描き足したらよいか教えて下さい。 宜しくお願いしたします。
- ベストアンサー
- Oracle
- Access2000VBAにてDAOでカレントにあるテーブルの内容をSQLで抽出して別のテーブルを作成する方法
こんにちは Access2000VBA初心者です。 現在開いているデーターベースで、フォーム上から抽出条件を入力してそれをSQLに渡し、定義させているテーブルから抽出して新しいテーブルを作成する記述がわかりません。 DAOでできそうなのですが、VBA教本を読んでいるとDebug.printで抽出結果を表示して終わっているのでそれ以上のことが書いてありません。 やりたいことは、SQLでテーブルから必要な条件をセットしてそれをrecordsetにいれるのだと思いますが、 そのrecordsetをなんとか新しいテーブルに作成して入れることはできないのでしょうか。 AccessVBAに明るい方よろしくお願いいたします。
- ベストアンサー
- Visual Basic
- SQLの結合条件について
SQLの結合条件について ・table_A ID | ATAI 01 | AAA 01 | XXX 02 | ABC 03 | DEF table_B ID | ATAI 01 | 不要 02 | 必要 03 | 必要 04 | 不要 上記のようなテーブルAとBがあるとします。 やりたいこと 1.テーブルAに存在するIDをBのIDから抽出 2.テーブルAの「ATAI」の値が’AAA’のIDは抽出対象から外す。 ※テーブルAの01IDに’AAA’と’XXX’がありますが、Bの抽出対象から外したい。 2.がうまくいきません。 select B.ID from table_A A,table_B B where A.ID = B.ID 上記のSQLに2.の条件を足して、結果を02と03にしたいです。 ※CASEは使わずにお願いします。
- ベストアンサー
- 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テーブルを見て条件を判断しての抽出は可能でしょうか?
- ベストアンサー
- その他(プログラミング・開発)
- oracle(SQL)のHINT指定について
性能問題について対応しています。 約2000万件のマスタと付随する各テーブルを結合して、検索条件に一致するデータを抽出するSQLを開発していますが、これらのパターン(曖昧検索:前方一致)において、前述の2000万件のマスタが駆動表となり、且つフルスキャンが走るものがあり、改善策を検討しています。 つきましては、HINT指定で駆動表を強制的に各テーブルに変更する方法(SQLのHINT指定内容)についてお教え願います。 →曖昧検索条件にもっとも絞られる対象のテーブルを駆動表とし、マスタテーブルはその駆動表とプライマリーキーで結合した形でアクセス(フルスキャンを避ける)ような実行計画となるSQLに改善をしようとしています。 以上です。
- 締切済み
- Oracle
- データがあれば○○なければのSQL
基本的なことなのかもしれませんが・・・ AとBというテーブルがあり、あるタイミングでAを元にBを作成します。つまりBはデータがある場合とない場合があります。また、2つは関連番号で紐づいています。 Aテーブルを抽出したい時に、抽出条件は以下です。 ・Bテーブルのステータスが1であれば抽出 ・Bテーブルのステータスが0であれば非抽出 ・Bテーブルにデータがなければ抽出 INNER JOINだとデータがない時に抽出できないし、 WHERE句にCASE句を入れればいいのかなと思いましたが、テーブルにデータがあればなんて条件書けないしで詰まりました。 SELECTした結果に対して条件つけて抽出する手も思いつきましたが もっと美しいSQLがあれば教えてもらえないでしょうか。 環境はSQLServerです。よろしくお願いします。
- 締切済み
- その他(プログラミング・開発)
お礼
おつきあい頂き感謝致します。 業務の内容も全くわからないのに、このSQLは正しいのか それも判断しながら仕様をまとめろということ自体 この作業を頼まれた時点うまくいかないなといういやぁな 予感はしていたのですが・・・。その通りになってしまいました。 プログラムの解析は前後関係を見てなんとかなるのですが DBの内容、使われ方が全く霧の中のためSQLの妥当性 など全く判断がつかず困っていました。少しでも 私の困っている内容、それに対しての丁寧な対処方法 とても心強く拝見しました。 明日から対応してみたいと思います。 本当にどうもありがとうございました。