現在
テーブル T_2011,T_2010,T_2009
の3つのテーブルがあり、それぞれには同じ形式の顧客情報が入っています。
例えば
顧客id,氏名,住所
この時、
T_2011には2011年に購入履歴のある方
T_2010には2010年に購入履歴のある方
T_2009には2009年に購入履歴のある方
のデータが入っております。
そこで、毎年購入がある方を抽出したいのですが
どうすれば可能でしょうか?
もちろん1つのテーブルに集めて、重複チェックをすれば
出るのですが、今後テーブル数が増えたり、2011年と2090年に
購入のある方など様々な形での抽出をする可能性があるため
クエリなどを利用し一発で抽出する方法があればと考えて
おります。
もちろん検索等を行い似たような例はあったのですが
ちょっと理解ができなかったためご質問させて頂きました。
宜しくお願いいたします。
重複チェックのキーは、顧客IDとなります。
環境は、windowsXP、access2000となっております。
No.1ベストアンサー
- 回答日時:
単に、
select a.顧客id,a.氏名,a.住所 from T_2011 a,T_2010 b,T_2009 c
where a.顧客id = b.顧客id and a.顧客id = c.顧客id
で出てくると思いますが。
年によって、氏名(結婚・離婚による)や住所(転居・行政の地番変更による)が変わることがあるので
最新のテーブルのデータを参照しましょう。
2010年、2009年に購入していて20011年に購入していない顧客は?
など購入していないという条件をつけるのは少し難しいと思われるかもしれませんが、
以下のようなSQLです。
select b.顧客id,b.氏名,b.住所 from T_2010 b,T_2009 c
where b.顧客id = c.顧客id and b.顧客id not in (select a.顧客id from T_2011 a)
※本当は、年毎にばらばらに持つのはのぞましくないんですが。
・・・例えば、2009~2011のいづれかの年に購入した客で大阪府に住んでいる人を出したいときとかに
急に手間が増えます。
ありがとうございました。
すごく便利です。
ただ、SQLビューの存在をしらなかったため若干マヨってしまいました。
SQLを覚えればここで色々できるのですね。
今まではクエリの条件に簡単な関数?を入れていただけでしたので。
ありがとうございました。
また、データベースのに関してのアドバイスも頂き有難うございます。
本当にありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(データベース) accessについて 2 2022/05/31 16:58
- その他(データベース) accessでの請求管理について 2 2022/06/13 21:51
- Access(アクセス) Access IF文でテーブルに存在しない場合の処理について 2 2022/10/10 18:09
- その他(ソフトウェア) 現在と過去の顧客名簿、新規・解約・更新など作りたいのですが「やよいの顧客管理」なら簡単に扱えますか? 1 2022/05/18 10:44
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- Excel(エクセル) Excelマクロ 差分抽出の方法が知りたいです。 2 2023/03/07 13:25
- その他(データベース) カラム上の重複を削除するクエリを教えてください 3 2022/04/12 14:11
- その他(資産運用・投資) 助けてください 株購入、配当について 正式なグリー株式会社から 身に覚えのない手紙が届きました。 手 8 2023/08/28 12:50
- 経営情報システム accessでの請求管理について 12 2022/06/11 16:20
- Ruby pandasでsqlite3にテーブル作成・追加・読み出しでindexの取り扱い方教えてください 5 2023/03/08 09:57
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
エラー 1068 (42000): 複数の主...
-
Mysql UPDATE出来ません
-
select文のwhere句に配列を入れ...
-
SQLについての質問
-
副問合せの書き方について
-
LEFT JOINが2つあるSQL文でAND...
-
mysqlで変数を使う方法
-
【初心者】特定の文字に色をつ...
-
エクセルの関数について教えて...
-
期間の重複を調べるSQL文につい...
-
ローカルルーターモードとは
-
PL/SQLの変数について
-
SQLサーバから、項目の属性(型...
-
SQLにて特定の文字を除いた検索...
-
group by 関数で表示するカラム...
-
閉包テーブルのノードの移行に...
-
Unionした最後にGROUP BYを追加...
-
sqlで、600行あるテーブルを100...
-
カンマ区切りの文字列を検索する
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
SQL Left Join で重複を排除す...
-
SQLサーバから、項目の属性(型...
-
副問合せの書き方について
-
VIEWの元のテーブルのindexって...
-
エクセルの関数について教えて...
-
SQLにて特定の文字を除いた検索...
-
マイクラPC版のコマンドで効率...
-
select文のwhere句に配列を入れ...
-
sqlで、600行あるテーブルを100...
-
ある条件の最大値+1を初番する...
-
inner joinをすると数がおかし...
-
Unionした最後にGROUP BYを追加...
-
期間の重複を調べるSQL文につい...
-
クエリ表示と、ADOで抽出したレ...
-
Access パラメータクエリをcsv...
-
PL/SQLの変数について
-
MySQLのDATE型カラム値がNULLの...
-
php+mysqlで複数選択削除について
-
上位3位を求めるSQL文は?
おすすめ情報