![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
ご覧頂き誠にありがとうございます。
当方アクセスの初心者ですが会社の顧客リスト作成を頼まれており、アクセスにて、複数に分かれたエクセルファイル同士を繋ぎ合せてエクセルで顧客リストを作成したいと考えております。
エクセルファイルなのですが、1つ目は住所リスト(顧客番号、名前、住所)でもう一つは売上データ(顧客番号、名前、売上高)です。住所データは全顧客記載、売上データは該当の顧客のみ記載されております。(売上0の顧客は記載せず)
上記ファイルをアクセスに取り込み選択ウィザードで顧客番号を主力キーにして合体をさせたのですが、売上データに記載の顧客のみが抽出され住所リストの一部顧客が消えてしまいます。(売上のある顧客の顧客番号、名前、住所、売上高は記載できました。)
2つのファイルを合体させて全顧客の顧客番号、名前、売上(売上がない場合は空欄)と抽出をしたいです。
お力添え頂けると幸いです。
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
すでに、f_a_007様の回答が出ているので、自分は別の視点から回答させて頂きます。
売上データにだけ存在する顧客があると想定し以下回答
初心者にはSQL文はきついかな・・・
でも、今後Accessを使っていくならば覚えていったほうが良いです
以下のテーブルを用意
住所リスト(顧客番号、名前、住所 )をTBL_ADRとし、顧客番号 1001,1002,1003を作成しておく
売上データ(顧客番号、名前、売上高)をTBL_URIとし、顧客番号 1002,1003,1004を作成しておく
抜粋>主力キーにして合体をさせたのですが、
抜粋>売上データに記載の顧客のみが抽出され住所リストの一部顧客が消えてしま~
上記、現象から売上データを主体に作成しようとしているためと推測されます
■現象からの推測SQL
SELECT TBL_ADR.顧客番号, TBL_ADR.名前, TBL_ADR.住所, TBL_URI.売上高
FROM TBL_URI INNER JOIN TBL_ADR ON TBL_URI.顧客番号 = TBL_ADR.顧客番号;
または
SELECT TBL_ADR.顧客番号, TBL_ADR.名前, TBL_ADR.住所, TBL_URI.売上高
FROM TBL_URI LEFT JOIN TBL_ADR ON TBL_URI.顧客番号 = TBL_ADR.顧客番号;
となっていると思われます。
■住所リストを主体にしたい場合のサンプルSQL
SELECT TBL_ADR.顧客番号, TBL_ADR.名前, TBL_ADR.住所, TBL_URI.売上高
FROM TBL_ADR LEFT JOIN TBL_URI ON TBL_ADR.顧客番号 = TBL_URI.顧客番号;
上記コードだと、住所リストにはなく、売上データにだけある顧客(顧客番号=1004)は抽出されません
■住所リスト、売上データの顧客すべてを表示させたい場合のサンプルSQL
(1).まず売上データだけにある顧客(1004)を列挙 (不一致クエリと呼ばれる物です)
SELECT TBL_URI.顧客番号,TBL_URI.名前,TBL_ADR.住所, TBL_URI.売上高
FROM TBL_URI LEFT JOIN TBL_ADR ON TBL_URI.[顧客番号] = TBL_ADR.[顧客番号]
WHERE (((TBL_ADR.顧客番号) Is Null));
(2).住所リストの顧客(1001,1002,1003)を主体にしたSQL
SELECT TBL_ADR.顧客番号, TBL_ADR.名前, TBL_ADR.住所, TBL_URI.売上高
FROM TBL_ADR LEFT JOIN TBL_URI ON TBL_ADR.顧客番号 = TBL_URI.顧客番号
(3).UNIONでひとつの出力結果を出す(1,2を合体させる)
SELECT TBL_ADR.顧客番号, TBL_ADR.名前, TBL_ADR.住所, TBL_URI.売上高
FROM TBL_ADR LEFT JOIN TBL_URI ON TBL_ADR.顧客番号 = TBL_URI.顧客番号
UNION
SELECT TBL_URI.顧客番号,TBL_URI.名前,TBL_ADR.住所, TBL_URI.売上高
FROM TBL_URI LEFT JOIN TBL_ADR ON TBL_URI.[顧客番号] = TBL_ADR.[顧客番号]
WHERE (((TBL_ADR.顧客番号) Is Null));
※UNIONを用いる場合、クエリデザイナーでは作成が出来ません
表示をSQLビューに切り替えて自分でSQL文を入力することになります。
(4).3で纏めたSQLを顧客売上台帳という名で保存
<顧客売上台帳 出力結果>
顧客番号 , 名前 , 住所 , 売上高
1001 , ○○○○ , ○○○○ ,
1002 , ○○○○ , ○○○○ , \200
1003 , ○○○○ , ○○○○ , \300
1004 , ○○○○ , ○○○○ , \400
以上です
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 複数ページあるPDFファイル内の文字列等の情報をキーにPDFをグループ分け分割したい。 2 2022/06/25 09:51
- Visual Basic(VBA) 指定月分の顧客データファイルを統合して並べ替え、所定の場所に貼り付ける 3 2022/09/10 07:55
- Excel(エクセル) Excel 指定した固有番号で、複数の行を削除する方法は? 2 2022/03/30 15:18
- Excel(エクセル) 【Excel】住所に郵便番号を付記する方法 3 2022/05/07 17:15
- Excel(エクセル) 関数の式を教えてください 2 2022/04/04 11:15
- Visual Basic(VBA) 指定月分の顧客データファイルを統合して並べ替え、所定の場所に貼り付ける (再質問) 4 2022/09/14 22:51
- Access(アクセス) 対象月の2桁表示について 1 2023/01/07 05:08
- Excel(エクセル) エクセルデータ。容量を減らすにはどうしたらいい? 11 2022/12/22 09:01
- Access(アクセス) Access IF文でテーブルに存在しない場合の処理について 2 2022/10/10 18:09
- 会社経営 「企業経営」に関する学校の宿題がわからないので教えてください 2 2022/09/30 01:04
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ワードでの単純作業の効率化に...
-
Access IF文でテーブルに存在し...
-
ACCESS で マクロの中でフィ...
-
Access フォームのデータがテー...
-
テーブル1 2 3 の結合
-
Accessで名寄せグループの関係...
-
Access2000 単票フォーム上の...
-
access2007 VBAでSQLのUPDATE
-
Access VBAでクエリーのレコー...
-
データベースの1要素に複数デー...
-
Access クエリ このレコードセ...
-
Access 既に開いているフォー...
-
Accessデータベースで行と列を...
-
ワードで保存するファイル名の...
-
Access クロス集計クエリについて
-
Excel 2019 のピボットテーブル...
-
エクセルVBAで5行目からオート...
-
「直需」の意味を教えてください
-
セルの右クリックで出る項目を...
-
Accessでテーブル名やクエリ名...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
データベースの1要素に複数デー...
-
Access VBAでクエリーのレコー...
-
Access IF文でテーブルに存在し...
-
Access フォームのデータがテー...
-
顧客IDを入力すると顧客名や住...
-
ACCESS で マクロの中でフィ...
-
ワードでの単純作業の効率化に...
-
ワードで保存するファイル名の...
-
シングルクォーテーションとダ...
-
Access 縦(行)のデータを横(列)...
-
別のDBからテーブルをコピーす...
-
Access 既に開いているフォー...
-
Access2000 単票フォーム上の...
-
Accessデータベースで行と列を...
-
Accessで名寄せグループの関係...
-
文字化け、記号の含まれるフィ...
-
Access レコードロックについて...
-
【続続】Access2002で連番のつ...
-
ACCESSで重複したデータがある...
-
Access クエリ このレコードセ...
おすすめ情報