• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:データ処理について(至急))

データ処理について(至急)

このQ&Aのポイント
  • テーブル名 TEST、項目A,B,C,D,E、キーA,B,C,Dに関するデータ処理方法を教えてください。
  • キー項目C以外の値が一致している同士レコードを抽出する方法を教えてください。
  • キー項目Cだけ値が異なる2レコードを1レコードに統合する方法を教えてください。

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

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

比較的わかりやすい抽出は、次のような感じでしょうか。 select * from TEST where (A,B,D) in (select A,B,D from TEST group by A,B,D having count(*)>1) ; >↑↑↑↑↑↑↑↑↑↑質問はここまで その後の操作に関しては、あえて書きません。 がんばって下さい。

amysmile
質問者

お礼

ありがとうございます。 助かりました! 頑張ります!!!

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

関連するQ&A

  • Accessで2つのテーブルのデータの整合性を確認したい

    Accessで2つのテーブルのデータの整合性を確認したいのですが、よい方法を教えていただけませんか? 状況は以下のとおりです。 Aテーブル    a   b    c   d   e       1  111  222  333  444  555 2  666   777 888 999 100 3   110 112 113 114 115 Bテーブル    a   b    c   d   e       1  111 222 333 444 555 2  666 777 000 999 100 3   110 112 300 400 500 ・AテーブルとBテーブルがあり、それぞれのテーブルのa、b、dフィールドのみを対象に、その値がAテーブルとBテーブルとで等しいかどうか調べたい。 (c、eフィールドの値が異なっていても、a、b、dフィールドの値が同じであればそのレコードはOKとし、a、b、dフィールドで1つでも異なる値があればNGとし、抽出したい。 例えば、Bテーブルの1、2レコードはOKだが、3レコードはNG) ・それぞれのテーブルのaフィールドが主キーになっている。 うまく説明できず、わかりにくいかもしれませんが、よろしくお願いします。

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

  • データの絞り込みってどのように処理されていますか?

    AccessVBAで作業しています。 テーブル1の中に、A・B・C・D・E・Fという数値型のフィールドがあり、レコード数は6万件とします。 A=100 B=50 のA~Fのレコードをまず取り出し、  レコード件数が1件ならF列の値を表示、  レコード件数が複数ならC列の最大値を含むレコードを選択。   それでレコード件数が1件ならF列の値を表示。   それでもレコード件数が複数ならDの最大値を含むレコードを選択。    それで件数が1件ならF列の値を・・・    それでも複数件ならE列の最大値を・・・ と続きます。 そのたびに元のテーブル1から選択してくるのは効率が悪い気がします。 みなさんはどのように処理されるのでしょうか。 また、レコードセットを使用したSQLの書き方がわからず困っています。 どなたか教えていただけませんか? 何卒よろしくお願いいたします。

  • ACCESSの初歩的な質問です。

    基本的な質問で申し訳ありません。 テーブルAとテーブルB両者のデータベースからIDをキーにして一致しない情報を抽出したいと考えているのですが。 テーブルAを基準にして一致しないレコードAは抽出条件から取り出せるのですが、同じクエリを使用してテーブルBの情報レコードBを取り出せないでしょうか? 簡単に言えばIDをキーにして変更前と変更後の情報を抽出したいのですが。

  • Access2003 複雑な条件のデータ抽出

    ☆1つのテーブルで、フィールド[A]~[C]があり、文字および英数字のデータが混在しています。 (ただし、フィールド[C]には、空欄(Null)になっている場合があります) =========================================================== (テーブル(1)) No  [A]      [B]    [C]     [D]      [E]      [F] 1   111      X    あ       2   222      X     か   3   333      X     さ  4   111      Y    た 5   222      Y   (Null)  6   333      Y     は 7   222      Z     ま   8   333      Z     や  9   111      Z    ら    =========================================================== [課題] (1) テーブル(1)のフィールド[A]の値を参照し、「111」の場合は、   フィールド[C]の値を[D]へ抽出する([B]でグループ化) (2) 同様に、フィールド[A]の値を参照し、「222」の場合は、   フィールド[C]の値を[E]へ抽出する([B]でグループ化) (3) 同様に、フィールド[A]の値を参照し、「333」の場合は、   フィールド[C]の値を[F]へ抽出する([B]でグループ化) (4) 新規クエリにて、上記課題(1)~(3)の条件を指定して実行すると    以下の抽出結果が表示される =========================================================== [抽出結果] (テーブル(2)) No  [B]    [D]    [E]      [F] 1   X     あ    か      さ     2   Y     た   (Null)    は   3   Z     ら    ま     や =========================================================== 別々のレコードにあるフィールド[C]の値を、条件に従い テーブル(2)のように1つのレコードにまとめたいのです。  大変恐縮ですが、私はSQLが書けないので、フィールド欄へ関数式を 入力して条件を指定しております。 できましたら、各フィールドへ入力する関数式を教えていただけると助かります。 また、関数だけでは出来ない場合は、SQLで教えていただければ幸いでございます。 お手数お掛けしますが、何とぞ宜しくお願い致します。

  • データ抽出SQLについて

    以下の様なテーブル内容のデータがあり、抽出条件:項目Aが同一でかつ、その項目Aに対する項目Bの値がひとつでも異なっている項目Aを抽出するSQLについて教えてもらえないでしょうか。よろしく御願い致します。 <データの内容> 項目A 項目B 0001 A 0001 A 0002 A 0002 B 0003 C 0003 A 0003 A 0004 B 0004 B 0004 B 0004 B <抽出結果> 0002 0003

  • SQL文の処理速度向上策について

    はじめまして 当方、初心者で勉強の身です。ご回答頂けたら幸いです。 3つのテーブルから下記条件の項目を取得したのですが どうにも処理速度が遅く困っております。 副問い合わせなどを使い、速度向上を図りたいのですが 良い案はありませんでしょうか。 <テーブル>テーブル名(項目1,項目2・・・) (1)music(項目1~20)総レコード数1万件 (2)data(項目1~12)総レコード数6万件 (3)inside(項目1~18)総レコード数4万件 3テーブルとも3つの同一項目のKeyで構成されています。 <条件> 今日追加された(1)テーブルのレコードの中で(2)、(3)のテーブル両方ともに存在しないレコードを取得すること。(比較項目は3つのKeyのみ) ちなみに現在のSQLは以下の用になっています。 select DISTINCT a.1, a.2, a.3 (3つともKey項目です。) from music a, data b, inside c where a.4 = 20091118 (該当レコードは10件程度です。) and a.1 != b.1 and a.1 != c.1 and a.2 != b.2 and a.2 != c.2 and a.3 != b.3 and a.3 != c.3 結果として出力されるレコードは5件程度です。 以上です。よろしくお願い致します。

  • SQL Server 縦データを横データに

    お世話になります。 下記のテーブルから下記の条件で データを出力するSQL文を作成したいのです。 アドバイスお願い致します。 条件1:NAMEはAを抽出 条件2:ICHIはグループ集計 条件3:ITEMはD2とD3を抽出 TESTテーブル NAME ICHI ITEM DATA ----- ---- ---- ---- A A1 D1 1 A A1 D2 2 A A1 D3 3 A A1 D4 4 A A2 D1 10 A A2 D2 20 A A2 D3 30 A A2 D4 40 B A3 D1 100 B A3 D2 200 B A3 D3 300 B A3 D4 400 データ出力結果 NAME ICHI DATA DATA ----- ---- ---- ---- A A1 2 3 A A2 20 30

  • 同一テーブルから複数件のデータを取得して1データとしてみたい

    こんにちは。 現在、以下の構成のテーブルから 複数件のデータを取得して1つのデータとして 参照したいと思っているのですがどうやって よいものかわかりません。 申し訳ありませんがご教授ください。 --------------------- テーブルsample --------------------- 項目A key 項目B key 項目C key 項目D 項目E --------------------- 取得したいデータは以下の通りで 同一の項目A,B,Cでグルーピングして 項目D,Eが存在する分だけ取得したいと思っております。 ----------------------------------------------- 項目A,項目B,項目C,項目D,項目E,項目D,項目E,..... -----------------------------------------------

  • 重複データの抽出方法(複数項目)

    以下のようなテーブルからc列とd列のデータが重複しているレコードを取得したいために、以下のSQLを試してみました。 a列|b列|c列|d列 ---|---|---|--- 01 |01 |01 |01 02 |01 |01 |01 03 |02 |01 |03 04 |02 |02 |03 05 |01 |01 |02 06 |02 |02 |03 select * from テスト where c in (select c from テスト group by c,d having count(*)>1) and d in (select d from テスト group by c,d having count(*)>1) そうしたところ、以下の結果になってしまいました。 想定では、○のレコードだけ抽出できると思ったのです。 ×のレコードを抽出したくないのですが、SQLのどこが 間違っているのでしょうか? a列|b列|c列|d列 ---|---|---|--- 01 |01 |01 |01 ○ 02 |01 |01 |01 ○ 03 |02 |01 |03 × 04 |02 |02 |03 ○ 06 |02 |02 |03 ○ (使用DB)SQLServer2000