• 締切済み

このようなレコードの抽出・生成方法

下記のようなテーブル、レコードがあるとします。 (テーブルAとテーブルBのコードは同意) テーブルA(PK:コードA,コードB,コードC,コードD) コードA コードB コードC コードD 000001 001 00 01 000001 001 00 02 000001 001 00 03 000001 002 00 01 000001 002 00 02 000001 002 00 03 テーブルB(PK:コードA,コードB) コードA コードB 000001 001 000001 002 ここでテーブルAに1件追加されたとします。 テーブルA コードA コードB コードC コードD 000001 001 00 01 000001 001 00 02 000001 001 00 03 000001 002 00 01 000001 002 00 02 000001 002 00 03 000001 001 00 04 ここで質問なのですが、 下記のようなレコードを生成するSQLを教えて欲しいのです。 イメージとしては、コードAとコードBをテーブルBから取得し、 他の項目は、上記で追加されたレコードをコピーといった感じです。 テーブルA コードA コードB コードC コードD 000001 001 00 01 000001 001 00 02 000001 001 00 03 000001 002 00 01 000001 002 00 02 000001 002 00 03 000001 001 00 04 000001 002 00 04 ←生成したいレコード わかりにくい質問で申し訳ないですが、 よろしくお願いいたします。

みんなの回答

回答No.2

RDBMS名やバージョンを書かないと、せっかく具体的な回答をしても、あなたの環境では使えないかも知れません。 あなたのお使いのRDBMS、バージョンでは、トリガは実装されていますか?

  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.1

コードC、コードDのユニークな組み合わせだけからなる テーブルDを作ります コードC コードD 00 01 00 02 00 03 00 04 はこのテーブルに追加します これならBとCをクエリデザインビューに取り込み結合しないでおいて コードA,B,C,Dを取り出せばテーブルAと同じものが出来ます

関連するQ&A

  • 2つのテーブルからレコードを抽出する方法

    お世話になります。MySQLに関する質問です。 TABLE1とTABLE2の2つのテーブルからレコードを抽出する際、 TABLE1からは全項目のデータを取得し、TABLE2からは一部の項目の データを取得したいと考えています。 条件は、TABLE1とTABLE2を[No]という項目の値で紐(ひも)づけます。 (1) SELECT * FROM TABLE1 (2) SELECT COL_A, COL_B, COL_C FROM TABLE2 上記(1)(2)のレコードを1つのSQLで取得する方法について、どなたかご教授願えますか?

    • ベストアンサー
    • MySQL
  • 表Aから表Bへのレコード追加 VB2005 SQLServer2005

    表Aに表Bのデータを追加したいのですが。 例えば、以下のようなテーブルがあったとして。 表A (A,B,C,Dとは項目名のこと) A B C D 表B A B C D E F G 表Aに表Bの項目A,B,C,Dのレコードが追加されればいいのですが。 現在は、コードの中にInsert文を書いてレコードの追加をやっているのですが。 テーブルの項目がたくさんある場合に困っています。 Accessだと追加クエリとかで簡単にできると聞いたのですが。 VB2005では簡単に表の追加はないでしょうか? アドバイスなどがいただけたら幸いです。 開発環境 SQL Server 2005 Express Visual Studio 2005 Pro WindowsXP Pro

  • 重複していないレコードの抽出方法について

    下記のテーブルでフィールドAとBの関係で矛盾が生じているID 1と2を抜き出すSQLを必要としております。 AとBを合体させて判断しようと試みましたがダメでした。 ご存知の方ご教示いただけると大変助かります。 【テーブル】 ―――――――――― |ID| A |B| ―――――――――― |1 |AAA|B | |2 |AAA|C | |3 |BBB|D | |4 |BBB|D | |5 |CCC|E | |6 |DDD|F | ―――――――――― よろしくお願いします。

  • テーブルの差分を抽出する方法

    TSVファイルが送られてくるたびに 1.CREATE TABLE 2.データ格納 しているのですが、前回と今回で送られたレコードの差分を抽出する、良い方法ありますでしょうか? 同じ構成のテーブルを2つ用意するとなんとなく比較しやすそうですが、そこから先が思いつきません。 ■作成するテーブル(PKは複合キーで項目AとBです)  A B C D  1 2 xx yy  2 3 aa bb

  • 重複するレコードを調べるSQL

    重複するレコードを調べるSQL 初歩的な質問ですみません! 重複するレコードを調べるために以下のようなSQLを作ったのですが、 遅くて困っています。 もっと速くする方法があれば教えてください! 異なるカテゴリーでも商品コードが重複しているものがないかを探すSQLです。 SELECT A.商品コード, A.X, B.カテゴリー FROM (SELECT COUNT(商品コード) X, 商品コード FROM テーブルA WHERE 追加年月 = 201008 GROUP BY 商品コード) A, (SELECT 商品コード, カテゴリー FROM テーブルA WHERE 追加年月 = 201008 ) B " WHERE A.X >= 2 AND B.商品コード = A.商品コード

  • 抽出対象の1レコードを複数レコードへ変更し出力する方法を

    抽出対象の1レコードを複数レコードへ変更し出力する方法を SQLで教えてください。(SQLServer2000です。) <イメージ> 店番 顧客番号 年月  A B C D ・・・(Dのあと100項目つづく)・・・ 1000 12345678 200909 10 20 30 40 2000 12345678 200910 30 40 50 60 を 店番 顧客番号 年月  AからD 1000 12345678 200909 10 1000 12345678 200909 20 1000 12345678 200909 30 1000 12345678 200909 40 2000 12345678 200910 30 2000 12345678 200910 40 2000 12345678 200910 50 2000 12345678 200910 60 と出力したいのですが、SQLServer2000ではPIVOT等が使用できず。 抽出処理が思いつきません。 パフォーマンスも悪くなったりしますか。 何か良い方法をご教示ください、よろしくお願い致します。

  • Access クエリについて

    Accessのテーブル1に、フィールド「コード」「回数」があり、レコードとして A,32 B,20 C,13 ・・・というように、ランダムなコードと回数がセットされているとします。コードは主キーです。 このテーブル1を元にしたクエリで A,1 A,2 A,3 ・・・ A,32 B,1 B,2 ・・・ B,20 C,1 C,2 ・・・ C,13 というように、コードごとに「回数」と同じ数のレコードがクエリ上に生成されるようにしたいのですが、こういうことは出来るのでしょうか?出来ればSQLで回答いただけないでしょうか。

  • 重複レコードの抽出

    Windows Server 2003上で、SQL Server 2000を 使用しています。下記のようなSQLを作成したいのですが、知識不足のためご助力願いたいのですが。 テーブル名 test フィールド seihin (1項目のみ) seihinの構成  先頭4バイト 製品コード   後半4バイト 連番(0000~9999) やりたいこと seihinの重複するレコードを含む 製品コードに対しそのコード別の件数の算出 例 xxxx0002,xxxx0011,yyyy1111が複数件あるとき、 seihinコードがxxxxであるもの全体の件数及び yyyyであるもの全体の件数 なお、下記のSQLにて重複レコードの抽出とカウントはできていますが、それ以降がわかりません。 select seihin,count(seihin) as scount from test group by seihin having (count(seihin)>1) 以上よろしくお願いいたします。

  • ある条件での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で取得したいのですが どちらの場合でも取得の方法に悩んでいます。 どのような方法で取得できるのでしょうか?

  • 別テーブルの抽出方法について

    初心者質問で恐縮なのですが、 テーブルAを正規化してテーブルBを作成したとします。 さらにテーブルBを正規化し、テーブルCを作成します。 そこで、そのテーブルA、B、Cからあるレコード1つ抽出するにはどのようなSQL文を書けば抽出できますでしょうか。 また、テーブルに外部キー制約などを用いてリレーショナル関係を築いた場合、そのメリットは更新、削除等で他のレコードと間違えないことであるということの他になにかありますでしょうか? ご存知の方、宜しくお願いします。