• ベストアンサー
  • すぐに回答を!

不一致データの削除

顧客テーブルと連絡テーブルを"番号"、"名前"、"地域"、"性別"で比較し、 顧客テーブルに存在しないデータを、連絡テーブルから削除するSQL文の 書き方を教えてください。   <顧客テーブル> 番号、名前、地域、性別、登録日 01、足立、東京、男性、2016/04/24 02、加藤、大分、女性、2012/03/01 04、田中、香川、女性、2003/07/21   <連絡テーブル> 番号、名前、地域、性別、生年月日 01、足立、東京、男性、1998/05/21 01、足立、群馬、男性、1974/03/06 存在しない 01、足立、東京、女性、1961/12/30 存在しない 02、加藤、大阪、女性、1965/06/01 存在しない 02、加藤、大分、女性、1981/02/03 03、佐田、香川、男性、1972/10/24 存在しない   --- 実行結果 ------------------------------------   <連絡テーブル> 番号、名前、地域、性別、生年月日 01、足立、東京、男性、1998/05/21 02、加藤、大分、女性、1981/02/03  

共感・応援の気持ちを伝えよう!

  • 回答数2
  • 閲覧数150
  • ありがとう数2

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

  • ベストアンサー
  • 回答No.1

merge 連絡テーブル using 顧客テーブル on 連絡テーブル.番号 = 顧客テーブル.番号 and 連絡テーブル.名前 = 顧客テーブル.名前 and 連絡テーブル.地域 = 顧客テーブル.地域 and 連絡テーブル.性別 = 顧客テーブル.性別 when not matched by source then delete; 動作確認してないけど、こんな感じで。 注意点としては、SQL Server 2008以降であることと、最後に ; が必須なことかな。

共感・感謝の気持ちを伝えよう!

質問者からの補足

ご回答ありがとうございます。 SQL Server 2000でも同じ処理をおこなうため、 そちらの書き方も教えてください。

関連するQ&A

  • テーブルのデータを分けたい(?)のですが・・・

    顧客管理をしていて、本人会員と家族会員(10人まで登録可)が1つのレコードになっています。 元のテーブルと別にテーブルを作って、1人で1レコードとしてデータを分けたい(?)のですができますか? 例)本人会員 性別 家族会員1 性別 家族会員2 性別 ・・・   田中太郎 男性 田中花子  女性 田中一郎  男性 ・・・   中村洋一 男性 中村恵子  女性 中村健太  男性  となっているテーブルを元に 氏名   性別 田中太郎 男性 田中花子 女性 田中一郎 男性 中村洋一 男性 中村恵子 女性 中村健太 男性    ・    ・    ・ という別のテーブルを作りたいのです。 クエリとかマクロぐらいしか使い方がわかりませんができますか?。宜しくお願いします。

  • ACCESS。よろしくお願いします。VLOOKUP??

    いつもお世話になっています。よろしくお願いします。顧客管理で困っています。 管理テーブル ID 日付 顧客番号 顧客名 性別 顧客テーブル ID 顧客番号 顧客名 性別 管理フォーム ID 日付 顧客番号 顧客名 性別 そこでお聞きしたいのですが・・ 管理フォームの入力で 顧客番号入力したら 顧客名 性別 を自動で引っ張ってきたいのですが・・ どうしたらできるかわかりません。 よろしくお願いします。 本等かってきましたが・・行き詰っています。 お勧めの本などありましたら教えていただけましたら幸いです。

  • 3つのテーブルから条件に一致しない行のみ抜き出し

    すいませんこの間、 2つのテーブルから条件に一致しない行のみ抜き出す 方法について質問した者です。 今回は、3つのテーブルから条件に一致しない行のみ抜き出しCSV か他のテーブルに抜き出す処理を作ろうと思っています。 そこで質問なのですが、以下の2つのテーブルから 条件に一致しないコードのみ抜き出すSQL文などありますか? ----------------------------------------- マスターテーブル コード、ネーム1、ネーム2、店コード、店地域 1、あ、い、6、東京 2、う、え、8、北海道 3、お、か、4、京都 4、き、く、2、奈良 店コードテーブル 店コード、店区分 1、スーパー 2、コンビニ 3、デパート 4、ホームセンター 地域テーブル 地域コード、店地域 1、東京 2、京都 ------------------------------------------ 条件は、マスターテーブルの店コードが店コードテーブルに存在 しないANDマスターテーブルの店地域が地域テーブルに存在 しないデータのみ抽出です。 抽出結果は、以下の様にしたいです。 1、あ、い、6、東京 2、う、え、8、北海道 4、き、く、2、奈良 わかりずらい質問ですがよろしくお願いします。

その他の回答 (1)

  • 回答No.2

> SQL Server 2000でも同じ処理をおこなうため、 サポート切れのバージョンを使うのはよろしくないですね。 それはさておき、ストアドプロシージャでやるしかないかなと思います。 SQL一発でってのは無理です。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

kawais070 様   お礼が遅くなり、大変失礼いたしました。   ご教示いただいた内容をもとに試行錯誤した結果、SQL Server 2000の方は下記SQL文で削除してみようと思います。   delete * from 連絡テーブル where not exists( select * from 顧客テーブル where 連絡テーブル.番号 = 顧客テーブル.番号 and 連絡テーブル.名前 = 顧客テーブル.名前 and 連絡テーブル.地域 = 顧客テーブル.地域 and 連絡テーブル.性別 = 顧客テーブル.性別)   迅速なご回答をいただき、心より感謝申し上げます。  

関連するQ&A

  • Excell データの検出法

    2個のファイルのうち1個のファイルのみに存在するデータの検出法 Excellの 類似ファイルが2個あります。1個のファイルのみに存在するデータを検出出来ますか。 (1) 顧客管理データとして毎月ファイルが作られています。 (2) お客様に 某通知を出したいのですが、先々月の客に連絡した場合は、先月の客には重複するため出したくありません。 (3) 各ファイルには顧客番号があるため、片方のファイルにのみ顧客番号があるデータを検出したいのですが方法はありますか。 ・2個のファイルを1個にまとめ顧客番号が重複するデータを削除することが出来ますか。 または顧客データが1個のみのデータを検出できますか。 ・顧客データが存在する月は各月には1個のみで複数は存在しません。

  • SQL文について

    SQL文について 現在一度に検索ができずに困っているため質問します。 データベースに男性テーブルと女性テーブルがあります。 男性テーブル ・番号 ・名前 女性テーブル ・番号 ・名前 このテーブルより自分の父、母、母の父を表示させたいのですが SELECT 男性テーブル.名前, 女性テーブル.名前, (※母の父を表示させたい) FROM 男性テーブル, 女性テーブル WHERE 男性テーブル.番号=父の番号 AND 女性テーブル.番号=母の番号 このあと条件に (AND 男性テーブル.番号=母の父の番号) をつけることはできないためSQL文の書き方で困っています。 抽出データは複数なので※の部分にサブクエリを書くことができません。 何かよいSQLの書き方はありますでしょうか?

  • アクセス データ抽出

    アクセス超初心者です… 教えて下さい… 全顧客情報をまとめたテーブルと(顧客番号、個人情報)、毎月ごとに分けて作っている来店情報(顧客番号と来店日)のテーブルが数か月分あります。 (全顧客情報) (来店情報3月)    (来店情報4月) ID 名前    ID 来店日      ID 来店日 1 Aさま    3 3月4日      3  4月9日 2 Bさま    5 3月12日     10 4月15日 3 Cさま    190 3月21日   15 4月30日 例えばこんな感じでのデータから、各顧客の最終来店日を抽出するにはどうすればいいか…思いつかないのです。 ※来店されるのは、各顧客月に1回か、数ヶ月に1回。 よろしくおねがいします。

  • ExcellVBAのFindに関する質問です。

    お世話になります。 VBA超初心者です。 同じSheetに二つのテーブル 性別テーブル(名前を付けてます) 顧客ID 性別 SA081  男 SA083  男 SA010   女 SA013  女 顧客テーブル(名前を付けてます) ID 氏名    顧客ID 性別 1 山田 太郎  SA081 2 斉藤 清   SA082 3 山本 花子  SA061 です。 顧客テーブルの顧客IDを上から性別テーブルを検索して、あれば顧客テーブルの性別フィールドにその人の性別を記入するには、どうすればいいのでしょうか。 一生懸命考えて作ってはいるのですが、デバックばっかり出て、全然進みません。 Sub Chck() Dim k As Range, s, i Set k = Range("顧客テーブル").Range(2, 3).Value For i = 2 To myTbl.Rows.Count Set s = Range("性別テーブル").Cells.Find(what:=i, lookat:=xlPart, MatchCase:=False) If s Is Nothing Then k.Range("g2").Value 'ここに性別を書きます(ここは顧客テーブル外です。) Exit Sub End If Next End Sub 宜しくお願いします

  • エクセルで別シートを参照していて、参照元のデータを変更した場合

    エクセルで別シートを参照したいのですがうまくいきません。 (1)Sheet1には顧客データが入っています。 【Sheet1】   A   B   C 1 氏名 住所 性別  2 小川 東京 男 3 佐藤 大阪 女 4 鈴木 福岡 女 (2)Sheet2ではSheet1の顧客データの一部+獲得ポイントのデータが入っています。Sheet2のA列とB列に「=Sheet1!A2」とういう風に関数を入れてSheet1を参照しています。C列~は手入力でデータを入力しています。 【Sheet2】   A   B    C    D 1 氏名 住所  12/1 12/15  2 小川 東京  1    5 3 佐藤 大阪  1    5 4 鈴木 福岡  1    5 (3)Sheet1に新たに顧客情報を入れますが、氏名は五十音順にしたいので行を挿入して入力します。(行3に加藤さんを入れました) 【Sheet1】   A   B   C 1 氏名 住所 性別  2 小川 東京 男 3 加藤 沖縄 男 4 佐藤 大阪 女 5 鈴木 福岡 女 (4)私の希望としては、(3)をしたらSheet2は↓のようになってほしいのですが、実際には(2)の状態のままです。 【Sheet2】   A   B    C    D 1 氏名 住所  12/1 12/15   2 小川 東京  1    5 3 加藤 沖縄   4 佐藤 大阪  1    5 5 鈴木 福岡  1    5 (5)Sheet1の変更結果をSheet2に反映することは無理なのでしょうか?

  • Access でこんなこと可能でしょうか?

    エクセルに10枚のシートが存在します。 顧客の名前、住所などの情報が入っているシートをシートAとします。 顧客の名前、口座番号などの情報が入っているシートをシートBとします。 また、口座を複数登録されている人がいらっしゃるのでシートBには名前が重複しています。 ここで問題なのはシートAは顧客全員の情報が入っていません。 ですからシートBに存在している顧客の名前がシートAに入っていない顧客も存在します。 そのようなシートがこの他にもいくつもあります。 このようなシートを整理したいと考えています。 つまり、エクセルファイルをアクセスにインポートしてから顧客全員の名前を記載したテーブルを作りたいと考えています。 クエリでやってみたのですが名前が重複していたりして条件も悪く、 テーブル間のフィールドの結合がうまくいきません。 私のやりたいことは実現できるはずなのでしょうか? また、難度が高いのでしょうか? よろしくお願いいたします。

  • ANA 性別の間違い

    仕事の関係で、大分県⇔東京間のチケットを楽天トラベルにて代理購入しました。 私は女性で、搭乗者は男性なのですが、名前等は間違いなく入力したのですが、私の性別が残ったまま購入してしまいました。 最近気が付き、搭乗者本人が楽天トラベルに電話して問い合わせたのですが、「虚偽申請になります。取り直してください。キャンセル料もかかります」と言われてしまったというのです。 私が購入したので責任もあり、どうにかして性別を変えられないでしょうか?

  • アクセスに関して、データの重複を確認したい

    ご覧いただき、ありがとうございます。 現在、アクセスの勉強中なのですが、 どうしてもわからない点がありましたので、ご質問させていただきます。 現在、アクセスを使用し、ある顧客情報の管理を行っております。 顧客情報の登録をする際には、名寄せを行い(名前と郵便番号) 重複をさせないようしております。 この顧客情報は、管理するお客様の方でも修正することができるのですが、 最近、お客様の方で修正をしてしまい、 名前と郵便番号が一緒のデータが発見されました。 他にもそういったデータがあるのではと探し始めたのですが、 アクセス初心者のため、足踏みしております。 イメージとしては、 ID  顧客名  郵便番号  電話番号 12  山田太郎  1111111  0120222222 こういったテーブルになっております。 情報が少なく、申し訳ございませんが、 ご回答いただけますと幸いです。 宜しくお願い致します。

  • テーブル設計につきまして(正規化)

    顧客情報管理サイトを作ろうと思っています。 ・非正規化  {顧客コード , 氏名 , かな名 , 性別 , 郵便番号 , 都道府県 , 市区町村 , 建物名 , 電話番号 ,  FAX番号 , 携帯番号1, 携帯メール1 , 携帯番号2 , 携帯メール2 , 顧客ランク,備考}  の列を考えております。 ・正規化テーブル  1.顧客情報テーブル   {顧客コード , 氏名 , かな名 , 性別 ,郵便番号(外部キー) , 建物名 , 電話番号 ,   FAX番号 , 携帯番号1, 携帯メール1 , 携帯番号2 , 携帯メール2 , 顧客ランク,備考}  2.郵便情報   {郵便番号(主キー) , 都道府県 , 市区町村 これ以上、正規化できないと思っているのですが、顧客情報テーブルをもっと効率よく テーブルを設計し、正規化できるものでしょうか? よろしくお願いします。

  • Access フォームのデータがテーブルに反映されない

    こんにちは。 現在、アクセスを使って簡単なデータベースを 作っていたのですが、ひとつわからないことがございます。 テーブルを二つリレーションを組んで、 フォームを作ったのですが、 うまく二つのテーブルにデータが 保存できません。 フォーム:顧客ID、名前、電話番号 サブフォーム:商品ID、商品名、納期、など。。。 こういった二つのテーブルで、サブフォームの方のテーブルに 顧客のデータも保存したいんですが、できるものなのでしょうか? 初心者でわかりづらくて、 大変申し訳ございませんが、よろしくお願い致します。