• ベストアンサー

アクセスの重複データ抽出について

アクセスで添付画像のようなテーブルがあり、重複データの抽出を行いたいです。 抽出結果は 1 50 4 1 -50 5 1 50 8 5 -70 19 5 70 1 となるようにしたいです。 つまり、 ・フィールド1が同じ 且つ フィールド2の絶対値が等しい ・ただしフィールド2が「0より大きいのみ」 または「0より小さいのみ」 の場合は抽出しない (プラスとマイナスの値が最低1つずつ含まれる) という条件です。 abs関数を使い、フィールド2の絶対値を出すのは出来たのですが、そこから先で行き詰っています。 どのように行えばよいか、お分かりの方お教え下さい。 よろしくお願いいたします。

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

  • ベストアンサー
  • 30246kiku
  • ベストアンサー率73% (370/504)
回答No.1

テーブル名を「★★」 フィールド名を「F1」「F2」「F3」 と仮定します。 以下を、クエリのSQLビューに記述しどうなりますか。 SELECT * FROM ★★ AS Q1 WHERE Exists (SELECT 1 FROM ★★ WHERE F1=Q1.F1 AND F2=-Q1.F2); F1 が同じで F2 の負号を反転したものがあるか・・・・ (正だけ・負だけは除外する様なので) ※ 処理性能はわかりません ※ 不都合あれば修正してください

shima-008
質問者

お礼

ありがとうございます!! 希望どおりの結果が出て思わず声を上げてしまいました。 こんなに早くご回答いただけて心から感謝いたします。 大変助かりました。ありがとうございます。

関連するQ&A

  • アクセスで重複データの抽出について

    アクセスで添付画像のようなテーブルがあり、重複データの抽出を行いたいです。 抽出結果は 120 0 となるようにしたいです。 つまり、 ・フィールド1を基準に、フィールド2が全て0だった場合のみ抽出する という条件です。 どのように行えばよいか、お分かりの方お教え下さい。 よろしくお願いいたします。

  • ACCESSの重複クエリについて

    ACCESSの重複クエリは、 重複する値を抽出してくれるということですが、 その際、二つのテーブルは全て同じフィールドでないと いけないのでしょうか? よろしくお願いします<m(__)m>

  • Access2000で重複データに・・・

    Access2000の重複データの処理について質問です。 あるフィールドの重複レコードを検索し、該当するレコードの別フィールドに「●」をつけようとしています。ただ、重複する最初のレコードには「●」をつけたくないのです。 例えば  aaa ・・・ (1)  bbb  aaa ・・・ (2)  ccc  aaa ・・・ (3)  eee というフィールドだった場合、(1)には「●」をつけずに(2)以降にのみつけたいのです。 重複クエリで重複レコードを抽出して重複テーブル作成→重複テーブルと元テーブルを組み合わせて更新クエリ作成という方法でやったのですが、そうすると(1)にも「●」がついてきます。(当然ですが・・・) 何か名案があれば教えてください。 やはり、VBAを使わないと無理でしょうか・・・?

  • Accessで特定の重複データを抽出したい

    Access2003です。 重複クエリウィザードを使って、あるテーブルから画像(1)のようなデータを抽出するクエリを作りました。 抽出根拠は「口座番号」「受取人」「請求額」の一致です。 ここから更に「支払日が2016/01/10を含む重複データ」を抽出したいのですが、そのやり方がわかりません。 画像(2)の結果になるのが理想です。 お力添え宜しくお願いします。

  • 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で教えていただければ幸いでございます。 お手数お掛けしますが、何とぞ宜しくお願い致します。

  • アクセス97で重複データのときに

    アクセス97で、テーブルにデータを入力する時にそのフィールドで値が重複していた場合、メッセージを出すやり方を教えてください。 インデックスで重複なしにはできません。 (重複する場合もあるのです。ただし、確認のためメッセージだけは出したいのです。) よろしくお願い致します。

  • 重複しないデータの抽出について

    MYSQL5.0.77で DBをつくり テーブル1のAフィールドのデータから テーブル2のAフィールドのデータ、 テーブル3のAフィールドのデータ、 テーブル3のAフィールドのデータ、 のいずれにも重複しないデータのみ 抽出したいと思っています。 どのようなSQL文を書けばよいでしょうか? じぶんでいろいろ試しましたがどうしても出来ません。 どなたかご教授願います。

    • ベストアンサー
    • MySQL
  • Access 抽出した重複データを一つにしたい。

    Access2002 VBA 教えていただけませんか! テーブルのフィールドに[日付]と[品名]があるとします。 ある期間の日付で抽出をした時5件のレコードが抽出されました。 (例)  日付    品名 H14-04-01 プリンター H14-04-02 ハードディスク H14-04-03 モニター  H14-04-04 プリンター H14-04-05 マウス このときの品名を表示したいのですが、重複品名は除いて プリンター ハードディスク モニター マウス とするにはどうすればいいでしょう?

  • Accessでの抽出について

    Accessで下記のようなテーブルがあるとします。 フィールド1  フィールド2  フィールド3 ----------------------- Aさん      20       200 Aさん      10       180 Bさん      10       300 Cさん      10       250 Cさん      30       310 条件1・・・フィールド2が「20」 条件2・・・フィールド3が「200」 この条件が当てはまる、フィールド1のデータはすべて抽出というふうにしたいのですが・・・。 (上記のテーブルでは、1件目と2件目のレコードがあてはまります。) どのようにして抽出したらよいでしょうか?よろしくお願いします。 Access2000を使用します。

  • テーブル フィルタ < 抽出されない

    アクセス2010です。 テーブルには、 **************** フィールド1 # () <> **************** と入っています。 画像の様に フィルターで **************** < **************** から始まる文字を抽出しようとすると 検索結果が **************** フィールド1 # () **************** になります。 フィルターで **************** < **************** を含む値を抽出条件にすると、何も抽出されません。 **************** > **************** で終わるにすると 「正しい値を入力してください。」 となります。 **************** フィールド1 # () <> **************** この状態で <> を抽出するにはどうすればいいでしょうか? 全て半角です。

専門家に質問してみよう