• ベストアンサー

クエリ-でデ-タを抽出したいのですが元デ-タに注文番号が重複している行

クエリ-でデ-タを抽出したいのですが元デ-タに注文番号が重複している行 が沢山あるので、重複している注文番号は1行だけ 抽出するには クエリ-の注文番号 の抽出条件にどのような 関数を使用すれば良いのですか?(ダブリ分は1行のみ抽出) 指導願います アクセス2003

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

  • ベストアンサー
  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

抽出するのが[注文番号]だけなら、 select distinct [注文番号] from 元デ-タ; 抽出するのが[注文番号]のほかにもあるなら、抽出・選択する列名も例示の上で ダブりを取り除く条件を補足してください。

ryo0511
質問者

お礼

色々試してみましたが  select distinct [注文番号] from 元デ-タ  このSQLクエリと B、c、D各デ-タにリレ-ションで 結び 完成しました ありがとうございました 又宜しくお願いします。

ryo0511
質問者

補足

説明不足ですみません、SQLで組むのですか? 今選択クエリで作成しています キ-がAデ-タの注文番号、B、C、Dと4個の各デ-タを他のサ-バへリンクを張っています、Aデ-タに同じ注文番号が存在するので、Bデ-タもAデ-タと同じ数だけ 抽出しますね、それをAデ-タの重複している注文番号(複数あり)を 1個にして抽出したいのです、 抽出デ-タの列は20個あります Aデ-タ            Bデ-タ 注文番号  品名        注文番号  送付先 1111    みかん       1111    大阪 1111    りんご          .  . 9999    うり        9999    東京 9999    きゆうり          9999    なすび 上のデ-タとします、Aデ-タの注文番号でリンクを張ります、実行したら Aデ-タ1111に Bデ-タの1111が みかんとりんごにデ-タが同じ行に来ますね、それを 重複している 1111から9999の注文番号のデ-タを1つだけ抽出したいのです Bデ-タがダブら無い様に選択クエリ-で関数を使用できませんか?  以上宜しくお願いします           

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

その他の回答 (7)

  • layy
  • ベストアンサー率23% (292/1222)
回答No.8

AとBのクエリ、その結果とC、クエリを分割して試して下さい。 通常、集計でうまくいくはずですが、AとBの関係では1行になっても、AとCの関係で複数行になってしまっている可能性あります。1行にさせた後のクエリでCとつなげる方が確実。 リンクの関係、Aだけあるもの出力か、AとC両方にあるもの出力か、Cだけあるもの出力か、集計とさせてもこれによって結果変わります。

ryo0511
質問者

お礼

色々試してみましたが  select distinct [注文番号] from 元デ-タ  このSQLクエリと B、c、D各デ-タにリレ-ションで 結び 完成しました ありがとうございました 又宜しくお願いします。

全文を見る
すると、全ての回答が全文表示されます。
  • piroin654
  • ベストアンサー率75% (692/917)
回答No.7

すみませんSQLを以下にしてください。 SELECT Aデータ.注文番号, Bデータ.送付先, Max(Aデータ.品名) AS 品名の最大, Cデータ.名前 FROM (Bデータ INNER JOIN Aデータ ON Bデータ.注文番号 = Aデータ.注文番号) INNER JOIN Cデータ ON Bデータ.注文番号 = Cデータ.注文番号 GROUP BY Aデータ.注文番号, Bデータ.送付先, Cデータ.名前; 張り間違えです。

ryo0511
質問者

お礼

色々試してみましたが  select distinct [注文番号] from 元デ-タ  このSQLクエリと B、c、D各デ-タにリレ-ションで 結び 完成しました ありがとうございました 又宜しくお願いします。

全文を見る
すると、全ての回答が全文表示されます。
  • piroin654
  • ベストアンサー率75% (692/917)
回答No.6

>キ-がAデ-タの注文番号、B、C、Dと4個の各デ-タを他のサ-バへリンクを張っています Dのデータがどのようなものかわからないので Dのデータについては無視します。 >Aの注文番号に対してリレ-ショプで B、C各デ-タから引っ張るようにしている テーブルのリレーションのことですか? 一応、案のクエリの作成ではこれを無視します。 >クエリ実行後 最終的に みかんでもりんごでも良いんです これを参考に ※案の一つです。 Cデータのフィールド名を名前とします。 Bデータ、Cデータは注文番号に対して レコードは一つとします。 SELECT Aデータ.注文番号, Bデータ.送付先, Max(Aデータ.品名) AS 品名の最小, Cデータ.名前 AS 名前の最大 FROM (Bデータ INNER JOIN Aデータ ON Bデータ.注文番号 = Aデータ.注文番号) INNER JOIN Cデータ ON Bデータ.注文番号 = Cデータ.注文番号 GROUP BY Aデータ.注文番号, Bデータ.送付先, Cデータ.名前; ではどうですか?

全文を見る
すると、全ての回答が全文表示されます。
  • layy
  • ベストアンサー率23% (292/1222)
回答No.5

確認です。 Aデ-タ            Bデ-タ 注文番号  品名        注文番号  送付先 1111    みかん       1111    大阪 1111    りんご         をクエリ実行すると Aからの注文番号  品名        Bからの注文番号  送付先 1111        みかん       1111        大阪 1111        りんご       1111        大阪 となるので Aからの注文番号  品名        Bからの注文番号  送付先 1111        みかん       1111        大阪 1111        りんご                 大阪 としたい、でしょうか。

ryo0511
質問者

補足

済みません  クエリ実行後 最終的に みかんでもりんごでも良いんです Aの注文番号が複数では無く 1つにしたいのです。Aの注文番号に対してリレ-ショプで B、C各デ-タから引っ張るようにしているので、だから Aのデ-タに複数の同じ注文番号が有ると B、cのデ-タが全てAのデ-タにリンクするので 実行した後の デ-タが使いにくいのです、宜しくご指導願います Aからの注文番号  品名        Bからの注文番号  送付先   Cからの注文番号 1111        みかん       1111        大阪    1111  山本

全文を見る
すると、全ての回答が全文表示されます。
  • layy
  • ベストアンサー率23% (292/1222)
回答No.4

抽出したいレコード件数はAテーブル分と同じく変えないで、注文番号は同じ番号だったら最初の1行めのみセット2行目以降は空白というのであれば対応策が変わってきます。 2件目にて、DLOOKUP関数で前レコードの値を取得し現在レコードと同じかの判断の上、空白にさせるか決める。こういうのがあります。

全文を見る
すると、全ての回答が全文表示されます。
  • shinkami
  • ベストアンサー率43% (179/411)
回答No.3

添付図でいかがですか 選択クエリーウィザードでクエリーを作成し並び替え欄を右クリックして集計を設定すると 行が一つ増えます。ここを図のように設定します。 このシステムどのようなテーブル構成になっていますか 補足を見ましたが、自分なら次のような構成にします 1.TBL商品(商品ID,商品コード,商品名,…) 2.TBL送付先(送付先ID,送付先コード,送付先名,住所…):送付先コードは重複なし 3.TBL注文表紙(注文ID,注文No.,送付先ID,注文日,…)注文No.は重複なし 4.TBL注文明細(注文明細ID,注文ID,商品ID,…) 各テーブルの最初は主キー(オートNo.)として TBL送付先-TBL注文表紙-TBL注文明細ーTBL商品とリレーションを設定します。

全文を見る
すると、全ての回答が全文表示されます。
  • layy
  • ベストアンサー率23% (292/1222)
回答No.2

クエリのデザイン画面で、ツールバーに表示、そこに集計ってありませんか。 注文番号のように同じ内容でまとめるならグループ化。応用で、品名なら最小・最大の選択でみかんやりんごどっちを出力するかをコントロールできる仕組みです。よく使います。 説明不足でもなかったですが。

ryo0511
質問者

お礼

ありがとう御座います。どうも説明不足で......何か違うみたいです、最初のSQLで 考えて見ます

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

関連するQ&A

  • Access2000 重複している番号を抽出するには?

    Access2000を使用しています。 数値型のフィールドに入力された番号の中から、重複している番号だけを抽出するクエリを作りたいのですが、どのようにして作ればいいでしょうか? よろしくお願いいたします。

  • エクセル / 重複する文字の行番号を抜き出す。

    お世話になります。 XP/2003 使用です。 エクセルで下記のようなケースの行番号を抜き出したいです。 できれば、関数のみがありがたいのですが、 マクロでもOKです。 ----------- 抽出したい行番号  重複する文字が入力された 「先頭の行」 と 「最後の行」 の行番号 ----------- 例 同じ列に、重複する単語が入力されています。 重複する単語は、必ず上下に並んでいますが、 1単語のみ場合もあります。 1  AAA 2  AAA 3  AAA 4  AAA 5  BBB 6  BBB 7  CCC 8  CCC 9  CCC 10 DDD 上記の場合の抽出した行番号 単語 → 先頭の行/最後の行 AAA → 1/4 BBB → 5/6 CCC → 7/9 DDD → 10/10 行番号は、B列、C列などに抽出できれば良いです。 何卒よろしくお願いします。

  • access2007 クエリで抽出

    初心者です。クエリで抽出したのですが、一部のデータが抜け落ちます。抽出条件のフィールドはテキスト型で、元のテーブルでコピペで統一しましたが、同じデータが抜け落ちます。削除してやり直しても同様でした。重複クエリを作成するとこのフィールドが重複して出てきます。どこを直したらいいのか見当がつきません。よろしくお願いします。

  • ACCESSのクエリに行番号をつける

    Microsoft ACCESS 2003で、簡単な以下の様なクエリを作っています。 (1) 元のテーブル  売上年月日/販売先顧客名/商品名/数量/価格 (2) 売上年月毎価格集計クエリ  売上年月(グルーピング)/商品名(グルーピング)/数量(集計)/価格(集計)  このクエリが、以下の様に出るとします。  例1)  2009/09 商品A 50 25,000  2009/09 商品B 20 12,000  2009/09 商品C 33 45,000  ・  ・  2009/10 商品A 50 25,000  2009/10 商品B 20 12,000  ・  ・  このクエリの先頭に、以下例2の様に、年月毎にブレークする「行番号」をつけたいのですが、どの様にすればいいか見当がつきません。  行番号をつけられる(かつ、特定の条件でブレークして、行番号を"1"から振り直す)様な関数、関数が無ければやり方等、わかる人がおられたらお助け下さい。  よろしくお願いします。  例2)  1,2009/09 商品A 50 25,000  2,2009/09 商品B 20 12,000  3,2009/09 商品C 33 45,000  ・  ・  1,2009/10 商品A 50 25,000  2,2009/10 商品B 20 12,000  ・  ・

  • アクセスのクエリ 抽出について

    アクセスでクエリを組み、あるデーターベースから会員番号・名前を抽出しようとしています。 数万件ある会員番号から指定された500件を一度に抽出したいのですが、どのようにすればよろしいでしょうか。 この500件の会員番号はランダムで特にクエリを組める条件等もなく、抽出したい会員番号が記載されたエクセル一覧からコピーして、クエリの抽出条件に貼り付けたりしたのですが、うまくいきません。 会員番号を1件づつ、抽出条件に入れていくのも大変なので、いい方法があればと思っております。 基礎的なことかもしれませんが、どなたかご教示いただければ幸いです。 よろしくお願いいたします。

  • Accessでの電話番号重複チェック

    Accessでの電話番号重複チェック 10万件ほどの顧客データが入ったcsvがあります。 「ID」「電話番号(1)」「電話番号(2)」「電話番号(3)」 とデータが並んでおり、この「電話番号(1)(2)(3)」が1つでも他のIDのものと 重複しているものを抽出したいのですが、方法はありますでしょうか。 10万件でExcelが使えなくなってAccessで出来るかなと思い立ったのですが、 あまりにも勝手が違い困り果てています。 とりあえず重複クエリで(1)と(2)(3)の重複は出せたのですが、 (2)が(3)と重複しているものや、(1)同士・(2)同士・(3)同士が重複しているデータの、 重複元・重複先全てのIDを抽出したいのです。 抽出する方法はあるのでしょうか。 宜しくお願いいたします。

  • ACCESSクエリーについて(ユニーク数の抽出等)

    久しぶりにACCESSを触っているのですがバージョンも上がり、手間取っています(2010)。 テーブルに以下項目で1万レコード有ります 顧客ID 顧客名 サービス名 金額 電話番号 12345 山田花子  お花    2100 03-1234-5678 23456 太田太一  バラ    4200 03-4567-7890 45678 佐藤百合子 ゆり    3300 045-123-456 23456 太田太一  つぼ    5500 03-4567-7890  ・  ・ 電話番号はダブりもあります(複数回購入している人もいるため)。 1.電話番号がダブりの時にはそれは1とカウントし、電話番号のユニーク数を知りたい。 2.1のユニーク(電話番号)毎(電話番号で重複ある場合はその合計を加算する)の累積金額を出したい。 3.1でダブりがあった場合、ダブりの件数をユニーク(電話番号)毎に知りたい。 ※人によっては1行のみ、ヘビー購入者は10行あるといったように購入頻度はまちまちです 集計クエリー、選択クエリーで算出できないでしょうか。 (達人には基本的な質問だとおもい恐縮ですが御教授いただければ幸いです)

  • ★クエリでの日付の抽出

    アクセス2000で注文書の管理をしています。 注文書テーブルにある「支払日」フィールドをもとにクエリで抽出を行いたいのですが、 その抽出条件を『今日以前7日間~今日以降7日間』としたいのです。 その場合、抽出条件はどのように記述すれば良いでしょうか? ご回答をお願いします。

  • アクセス クエリ抽出

    アクセスのクエリについてお伺いします。各フィールド毎に行をずらして抽出条件を入れて、1つでも条件があった場合にはそのデータ全てを抽出するようにしています。その抽出されたデータの中で、条件が一致したものについてのみフォントの色(例えば:赤)を変えて表示する事はできないでしょうか。よろしくお願いします。

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

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

専門家に質問してみよう