• 締切済み

アクセスのデータ抽出

現在テーブルA(支店コード、支店名、郵便番号、住所)とテーブルB(支店コード、社員番号、商品Aの売上数、商品Bの売上数・・・※商品名ごとにレコードを持っています。)の2つのテーブルを使っています。 これをクエリで抽出しているのですが、社員一人につきひとつのレコードしか抽出されません。 売上のない支店も全て抽出し、実績報告書として印刷するため、テーブルAとBに結合のプロパティでテーブルAの全てを選んでいるため、これ以外の方法でテーブルBのデータ全てを抽出したいのですが、何か方法はありますか?

みんなの回答

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

SELECT 支店.支店コード, 支店.支店名, nz([商品名],"実績無し") AS 式1, 売上.売上個数 FROM 支店 LEFT JOIN 売上 ON 支店.支店コード = 売上.支店コード;

  • root16
  • ベストアンサー率31% (43/138)
回答No.2

テーブルAとテーブルBを支店コードでリレーションシップしているとすると、「両方のテーブルの結合フィールドが同じ行だけを含める」か、 「テーブルBの全レコードとテーブルAの同じ結合フィールドだけを含める」にすると解決するのではないでしょうか? クエリの抽出条件がおかしい場合もありますので、 クエリの抽出条件(特に社員番号)についても記述ください。

papabondo
質問者

補足

「テーブルBの全レコードとテーブルAの同じ結合フィールドだけを含める」にすると、確かに社員ごとに全レコードが抽出されるのですが、実績のない支店分を抽出しません・・・・ クエリの抽出条件なんですが、社員番号については特に指定はしていません。

  • Cmi
  • ベストアンサー率36% (132/364)
回答No.1

質問の内容がちょっと分りにくいです。 具体的なデータを使って、今どうなっていて、どうなるようにしたいのか補足できますか?

papabondo
質問者

補足

テーブルA(支店)  支店コード   支店名   郵便番号   住所  100     東京    111-1111   東京都~~  120     大阪    222-2222   大阪府~~  130     名古屋   333-3333   名古屋市~~ テーブルB(売上実績)  支店コード     社員番号     商品名   売上個数  100      100000     A      20  100      100000     B      10  110      110000     A      5 となっています。 これを支店コード順にレポートに出力して印刷したいのですが、 SELECT 支店.支店コード, 支店.支店名, IIf(売上実績.商品名 Is Null,'実績なし') AS 式1, 売上実績.商品名, 売上実績.商品名 FROM 支店 LEFT JOIN 売上実績 ON 支店.支店コード = 売上実績.支店コード; クエリで上記のような感じで抽出していますが、社員番号100000については、商品Aの売上のみしか抽出しません。 そこで全てのレコードを抽出できるようにしたいのです。 説明下手ですが、よろしくおねがいします。

関連するQ&A

  • Access 項目ごとにフォールド全データ表示

    Access2010で質問です。 よろしくお願いいたします。 Tabにある顧客番号フィールド全てに対して、 商品番号ごとに、実績が無いデータも表示させたいです。 --------------------- ・Tab(顧客情報テーブル) 顧客番号 顧客名 ・Q1(売上実績クエリ) 顧客番号, 商品名(抽出条件 Forms![フォーム1]![商品番号] Or Forms![フォーム1]![商品番号2] ) 売上実績 ・Q2(完成クエリ) 顧客番号,商品名,売上実績 1 ,商品A ,0 2 ,商品A ,2 3 ,商品A ,10 1 ,商品B ,1 2 ,商品B ,0 3 ,商品B ,5 --------------------- 選択クエリでTabフィールドを全て表示させるように結合させると、 --------------------- ・Q2(完成クエリ) 顧客番号,商品名,売上実績 1 ,商品B ,1 2 ,商品A ,2 3 ,商品A ,10 3 ,商品B ,5 --------------------- という表示になりますが、 顧客番号×商品数(A、B)のデータ数を出したいです。 単純に商品名ごとにTabとQ2結合クエリを作成し、 後でまとめるという方法もありますが、 Q1「商品名」の抽出条件は今後増える予定があるため、 できるだけ少ない数のクエリで処理できるようにしたいと思っています。 もしお分かりになれば、教えていただけないでしょうか。 どうぞよろしくお願いいたします。

  • Access フィールドから値を取り出す

    お世話になります。 ・テーブル 会員番号(テキスト),商品名(テキスト),売上数(数値) 「商品名」には商品Aと商品Bがあります。 会員番号ごとに商品Aと商品Bそれぞれの売上数を分けて表示したいです。 ・クエリ SELECT 会員番号,商品A,売上数A,商品B,売上数B WHERE テーブル.商品名 = "商品A" = 商品A AND テーブル.商品名 = "商品B" = 商品B FROM テーブル GROUP BY 会員番号,商品A,売上数A,商品B,売上数B; 会員番号ごとに並べたいので、クエリをグループ化したところ、 会員番号「1」の商品Aは3件、商品Bは10件だった場合の結果として ---------------------------- 会員番号,商品A,売上数A,商品B,売上数B 1,商品A,3,商品B,3 1,商品A,10,商品B,10 ---------------------------- このように会員番号が重複して表示されてしまいます。 欲しい結果 ---------------------------- 会員番号,商品A,売上数A,商品B,売上数B 1,商品A,3,商品B,10 ---------------------------- 同一の会員番号につき、商品と売上数を1行でまとめられないでしょうか。 どうぞよろしくおねがいいたします。

  • ACCESSのクエリ機能で重複したデータを除く方法

    accessの初心者です。 どなたかお詳しい方是非よろしくお願い致します。 accessのクエリ機能をつかい、レコードを結合したいのですが、重複したレコードを省く方法を教えてください m(_ _)m 例えば、下記のようなAとBというテーブルがあり、Aには商品番号と商品名、Bには商品番号と倉庫名が入っているとします。 テーブルA(※商品番号の重複なし) 商品番号 商品名 001    商品A 002    商品B 003    商品C テーブルB(※商品番号の重複あり) 商品番号 倉庫名 001    倉庫A 001    倉庫B 001    倉庫C 002    倉庫B 002    倉庫C 003    倉庫A 003    倉庫B 商品番号でクエリをかけて、テーブルAのレコード数と同じレコードの商品番号、商品名、倉庫名と表示させたいのです。 (倉庫名はテーブルBのレコードの中のいずれかだけでOKです。) 例えば、下記のようなクエリ結果を表示させたいです。 商品番号 商品名 倉庫名 001   商品A  倉庫A 002   商品B  倉庫B 003   商品C  倉庫A 説明がうまくできず申し訳ありませんが、どなたかお詳しい方よろしくお願い致します。

  • アクセスでデーター抽出方法を教えて

    アクセスで、クエリー&サブフォームを使わず、テーブルのデータをフォーム上で抽出したいです。教えて下さい。(例)テーブル1:商品名A 商品番号2・・・・・、フォーム上で商品番号2と入力したら商品名Aだけを表示したい。

  • Accessクエリの抽出条件

    Access2000を使用しています。 クエリの抽出条件にテーブルの値を使用したいのですが、その方法がわかりません。 テーブルAには、「日付」、「当者コード」 などの項目があります。 テーブルBの項目は「担当者コード」のみです。また、1レコードしか登録 されていません(2レコード以上になることはありません)。 そこで、テーブルAに対するデータ抽出条件を、テーブルBの「担当者」としたいのですが、 どのように記述すればよろしいでしょうか・・・? よろしくお願いします。

  • Access 上位5位の抽出

    商品名と出荷日付が含まれるテーブルAがあり、出荷日付が異なる同じ商品名のレコードがたくさんあります。 例えば、商品名(重複なし)を含む100レコードからなるテーブルBをエクセルかなんかで顧客から渡されるとしたとき(仕様変更依頼できません)、Bにある商品名100レコード全部につき、出荷日付の最近の履歴5件ずつを抽出して、 商品1の最近5件、商品2の最新5件…商品100の最新5件 (計500レコード) というクエリを作りたいのですが、どういう設定をすればよいでしょうか。

  • ACCESSですべての明細が一致するデータの抽出

    以下のような、構造が同じ2つのテーブルがあります。 2012注文テーブル 会社cd 商品cd A    1 A    2 B    1 C    1 2013注文テーブル 会社cd 商品cd A    1 A    2 B    1 B    2 C    2 このとき、両方のテーブルの注文が完全に一致した会社(この例ですとA社)のみを 抽出したいのですが、うまくいきません。 select distinct a.会社cd from 2012注文 a, 2013注文 b where a.会社cd = b.会社cd and a.商品cd = b.商品cd などでは、1つだけ一致するB社も抽出されてしまいます。 すべてのレコードが一致する会社だけを抽出するには、どうすればよいのでしょうか。 よろしくお願いします。

  • Access2002 2つのテーブルのマージ方法

    いつもお世話になっております。 クエリについてお聞きします。 現在、2つのAccessDBが稼動しており、それを1つにまとめる作業をしています。 2つのDBには似通ったテーブルが存在し、それをマージする方法で悩んでいます。 テーブルA ・社員番号 ・社員氏名 ・フリガナ ・会社コード ・部署コード テーブルB ・従業員コード ・従業員名カナ ・従業員名 ・所属コード フィールドの定義としましては、 社員番号=従業員コード 社員氏名=従業員名 フリガナ=従業員名カナ 部署コード=所属コード となります。 全てテキストのレコードです。 これを、テーブルAを正にして、テーブルBのデータをAにマージしたいのです。 要件としましては、 1.テーブルAに存在する社員コードにマッチするレコードはそのまま残す(Bのデータは無視) 2.テーブルAに存在せず、Bに存在するものをAに追加する ということです。 クエリを使って色々試しましたが、どうしてもテーブルAに存在するものもアップデートしてしまい、困っています。 どなたかご教授願えれば幸いです。 よろしくお願いいたします。

  • accessでの2つの表を使った更新のしかた

    Access2003を使っています。 2つの表を使って更新をする方法が分かりません。 たとえば、キャンペーン商品(数品)の支店別(8支店)販売実績を作成するのに、下記のようなテーブルを用意した場合。 A表,売上表の項目(支店コード、商品コード、数量) B表,キャンペーン表の項目(商品コード、商品名、支店項目x8) 更新クエリでの”レコードの更新”欄で,A表の支店コードの値でB表の該当支店項目へ加算したいのですが,されません。どのようにすべきでしょうか。 IIf(支店コード=1 支店項目1+数量) と入力していますが,できていません。これではダメですか。 ご教授下さい。 これではダメだと別の方法を考えるとしたらどうすべきでしょうか?。

  • Accessのクエリのデータ抽出のエラー?について

    お世話になります。 Accessのクエリでのデータ抽出について教えてください。 テーブルからフィールドを商品コードと出荷日の2つを選択し、 集計を使用して、商品コードでグループ化して、出荷日で最大にします。 すると、抽出条件で商品コードを指定すると抽出できるのですが、抽出条件で 指定せずすべてのデータを抽出すると出てこない商品コードがあります。 たとえば[A]という商品コードを抽出条件に指定すると抽出できるのですが、 抽出条件で指定せずすべてのデータを抽出するとこの[A]という商品コードが 抽出されません。 何が理由なのかお分かりになりましたらどうぞよろしくお願いいたします。 当方SQLがわかりませんのでクエリのデザインビューでご説明いただけますと 幸いです。

専門家に質問してみよう