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

このQ&Aのポイント
  • ACCESSを使用して、電話番号のユニーク数や累積金額などを集計するクエリーを作成したい。
  • テーブルには顧客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行あるといったように購入頻度はまちまちです 集計クエリー、選択クエリーで算出できないでしょうか。 (達人には基本的な質問だとおもい恐縮ですが御教授いただければ幸いです)

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

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

デザインビュー>SQLビューと進んで、以下をコピペ。 その後、デザインビューに戻して下さい。 1.電話番号がダブりの時にはそれは1とカウントし、電話番号のユニーク数を知りたい。 Select Count(Distinct [電話番号] ) From テーブル; 2.1のユニーク(電話番号)毎(電話番号で重複ある場合はその合計を加算する)の累 積金額を出したい。 Select [電話番号], Sum([金額]) as 累積金額 From テーブル Group by [電話番号]; 3.1でダブりがあった場合、ダブりの件数をユニーク(電話番号)毎に知りたい。 ダブリのみ表示なら Select [電話番号], count(*) as ダブりの件数 From テーブル Group by [電話番号] Having count(*) > 1; ダブらないものだけ表示なら Select [電話番号], count(*) as ダブりの件数 From テーブル Group by [電話番号] Having count(*) = 1; いっさいがっさい表示なら Select [電話番号], count(*) as ダブりの件数 From テーブル Group by [電話番号];

関連するQ&A

  • ACCESSクエリーについて

    ACCESSクエリーについてですが、複数列、行が ある顧客テーブルがあり、そのデータテーブルには、 伝票番号がレコード毎にふられています。 このレコードはお客様によっては、 複数行となることもあります。 その場合は、お客様に同じ伝票番号が 複数行にわたってふられるケースも あります。 目的はクエリーで伝票番号の先頭の 行だけを引っ張りたい、です。 単に伝票番号だけを引っ張るだけであれば、 簡単にプロパティの固定値をはいに変えるだけ でできますが、伝票番号が複数存在することが ありえるなかで、伝票番号の先頭のみの 行のみ抽出させることは可能でしょうか。

  • Accessのクエリについて質問です。

    Accessのクエリについて質問です。 T_元データ、T_書換データという2つのテーブルがあります。 それぞれのテーブルは顧客番号、金額1、金額2、金額3というフィールドがあります。 テーブル生成クエリで、以下のような新規テーブルを生成したいと思います。 ---------------------------------------------------------------- 【1】顧客番号が一致した場合、T_元データの金額1、金額2、金額3を T_書換データの金額1、金額2、金額3に書き換えたい。 【2】顧客番号一致しない場合、T_元データの金額1、金額2、金額3を をのまま表示させたい。 ---------------------------------------------------------------- 【1】については正常に書き換えができていますが、 顧客番号が一致しない場合は、金額1、金額2、金額3がブランクになってしまいます。 【2】のような動きにするにはどうしたらよいのでしょうか? ちなみに、結合プロパティは以下のように設定しています。 左のテーブル名:T_元データ  右のテーブル名:T_書換データ 左の列見出し:顧客番号    右の列見出し:顧客番号 2を選択 ('T_元データ'の全レコードと'T_書換データ'の同じ結合フィールドのレコードだけを含め る。) よろしくお願いいたします。

  • クエリーの抽出条件、テーブルの構成について

    LIbreoffic Base を使用しています。 クエリーでの抽出仕方を教えてください。 <例> 複数の顧客がいます。 顧客Aが1つの店舗で商品を購入した場合に合計金額に対して割引はありません。 顧客Aが2つの異なる店舗で同一日に商品を購入した場合に各店舗毎の合計金額を合算して10%の割引を行います。 顧客Aが3つの異なる店舗(以上)で同一日に商品を購入した場合に各店舗毎の合計金額を合算して20%の割引を行います。 テーブルからクエリーで抽出して 結果として顧客ごとに日別、月別、年別に 顧客 日付 金額の明細と金額の合計 割引額の明細を作成したい。 テーブルの構成 顧客テーブル  顧客ID 顧客名 商品デーブル  商品ID 商品名 商品単価 店舗テーブル  店舗ID 店舗名 明細テーブル  明細ID 顧客名 店舗名 商品名 日付 金額 各テーブルのプライマリーキーは顧客名、商品名 店舗名 明細IDです。 質問ですが 顧客名 日付 店舗名、金額の明細と金額の合計 割引額を日別、月別、年別に抽出し計算するしかたを教えてください。 特に各顧客か同一日に購入した店舗数によって割引率が異なるので、これをクエリーの抽出条件としてどう表現し明細にしたらよいかで行き詰っています。 テーブルの構成にはこだわっていません。変更すべき箇所があれば指摘してください。 よろしくお願いいたします。  

  • Accessのクエリ。日付と顧客で売上合計をだす。

    期間を指定して、顧客の売上を合計したいです。 2つのテーブルからクエリを作成しました。 tbl顧客 顧客番号 顧客名 tbl販売 販売番号 日付 顧客番号 金額 Q_売上 日付 顧客番号 顧客名 金額 ∑をクリックして、金額の集計は[合計]にしています。 その他は、[グループ化]です。 日付の抽出条件は、 Between [開始] And [終了] としています。 顧客毎に合計を出したいです。 よろしくお願い致します。

  • ACCESS2000でクエリで抽出したレコードをフォームに表示するには

    A顧客テーブルで作成したフォームからコマンドボタン(電話番号検索)押下時に 電話番号入力画面が出て入力した電話番号とマッチした顧客レコードをフォームに 表示させたいのですが上手く出来ません。 現在進めている方法では何がダメなんでしょうか(以下は考え方) A顧客テーブルから作成したフォムに電話番号コマンドを作成してコマンドを 押すとクエリの実行をさせる。クエリはA顧客テーブルのフィールドを全て選択して抽出条件に[電話番号入力]としている。 (結果) ・フォームを開くと先に電話番号入力が出てくる、先にフォームが開かない。 ・電話番号検索コマンドボタンを押すと抽出条件に合ったレコードはデーターシートビューに表示される。 よろしくお願いします

  • Access クエリ このレコードセットは・・・

    いつもお世話になります。 Accessで下記の様にクエリを作成しましたが、”このレコードセットは更新できません”と出てしまいます。 ■テーブル1  ・顧客ID(主キー)  ・顧客名  ・住所  ・TEL ■テーブル2  ・顧客ID  ・取引ID(主キー)  ・請求金額 ■クエリ1(集計クエリ)  ・顧客ID グループ  ・請求金額合計: Sum(請求金額) 合計 ■クエリ2(実際に使用するクエリ)  ・顧客ID(テーブル1)  ・顧客名(テーブル1)  ・住所(テーブル1)  ・TEL(テーブル1)  ・請求金額合計(クエリ1) このクエリ2を開いて更新しようとしても、”このレコードセットは更新できません”と左下に表示されて更新できません。 ・請求金額合計(クエリ1)を除けば問題なく更新できます。 ですが1顧客に対して通算で幾ら請求をしたかとその顧客のデータを同一クエリで表示・更新したいので、意味をなさなくなってしまいます。 どなかた良い方法をご教授下さいませ。

  • アクセスのクエリで更新できるようにしたいんですが、

    アクセス2000を使っています。クエリから、作ったフォームを更新したいのですが、できません。どなたか教えて下さい。 二つのテーブルがあります。 ・テーブル1=顧客番号、顧客名、初来店日、来店日2・・・ ・テーブル2=顧客番号、顧客名、アンケートの有無、カードの有無・・・ というようなもので、エクセルから外部データの取り込み→テーブルのリンクで作ってます。 この二つのテーブルから ・クエリ1=顧客番号(テーブル1)、顧客名(テーブル1)、初来日店(テーブ ル1)、アンケートの有無(テーブル2) を作り、これをもとにフォームを作ってフォーム上でアンケートの有無を更新できるようにしたいのですが・・・。 初心者で説明も上手くできなくてごめんなさい。 宜しくお願いいたします。

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

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

  • Access 更新クエリについて

    Access365で顧客データを管理しようとしています。 「T_更新履歴」の情報を「T_顧客情報」へ更新クエリを用いて更新させたいです。 「T_更新履歴」には今回更新されたデータのみが入っており、更新のない項目については空白状態です。 例) 顧客ID/顧客名/電話番号/住所…    /   /00-0000-0000/…  今回は電話番号に更新があった為、電話番号のみが入力され、他項目は空白 こういったテーブルの場合、空白項目は更新せず、入力のある項目、今回の例では電話番号のみを更新するといった動きが理想なのですが、更新クエリで可能でしょうか。 ちなみに、毎月100件以上のデータ変更(更新)があり、「T_更新履歴」にはExcelデータを取り込んでデータを蓄積しています。 Accessをよく分かっておらず恐縮ですが、お知恵をお借りできると幸いです。 どうぞよろしくお願いいたします。

  • Access2000 抽出について

    どうしてもわからないので教えてください。 選択クエリで、「フリガナ」というフィールドに、 Like IIf(IsNull([Forms]![F_顧客検索]![カナ検索]),"*",[Forms]![F_顧客検索]![カナ検索] & "*") でフォームからクエリを実行させるようにしているのですが、 フリガナが空白のレコードは抽出されてくれません。 「*」でなく、なんと入れればいいのでしょうか? ちなみに他に、「自宅電話番号」というフィールドに、 Like IIf(IsNull([Forms]![F_顧客検索]![電話検索]),"*" & "*",[Forms]![F_顧客検索]![電話検索] & "*") など、似たような感じで抽出をかけています。 よろしくお願いします。

専門家に質問してみよう