dポイントプレゼントキャンペーン実施中!

条件抽出について教えて下さい。

会社で使っているデータベースですが、
1.7月分の顧客名簿と、8月分の顧客名簿を比較し、8月分新規の会社名のものだけ抽出する。

2.8月顧客名簿に、同じ会社名があった場合、一つのみ表示する。

以上の2つです。
今は、手作業で行っていて、時間がかかってしまいます。
わかる方がいましたら、どうかお願いいたします。

A 回答 (5件)

txtファイルですか。


大きく分けて、ソートして処理するやり方と、ソートしないで処理するやり方が
有ります。

ソートするやりかた。
(1)マッチング処理を行ないます。但し、両ファイルに同じ会社名が複数づつ
  存在すると処理が結構面倒です。
(2)ソートした後、上から連続した2つのレコードを比較していきます。
  会社名が同じなら前詰します。全行数もー1します。

ソートしないやりかた。
(1)2重ループで会社名を比較します。8月が外側で7月が内側です。
  外側で指定した会社名が内側のループで見つからない時にその会社名を新規と
  判断します。
(2)2重ループで名簿内の2つの行の会社名を総当りで比較していきます。
  同じ会社名があれば後ろの行のところで前詰をします。全行数もー1します。

判りにくければ、補足してください。
    • good
    • 0

ACCESSは使えますか?


ファイルをテーブルにインポート(それぞれ別テーブル)orリンクしたあと、
不一致クエリーで「8月分のみに存在する」を抽出+グループ化するのが、一番簡単かと思います。
バリバリにプログラムが組める方でしたら、ごめんなさーい。
    • good
    • 0

> せっかく答えて下さったのですが、txtファイルのデータでした。



という事らしいので、Excelをお持ちなら、そちらに貼付けて、抽出/ソート/集計するような仕掛けを作るとか。
ほかにも、WSHかDOSのバッチでかけるかもしれませんが、
実際のデータのフォーマットが謎なんで、本当にできるかどうかは不明。
    • good
    • 0

顧客名簿に


会社名 varchar;
月 integer;

というフィールドがあるとして、

1. select distinct TAug.会社名 from 顧客名簿 TAug
  where TAug.月 = 8 and not exist (select TJul.会社名 from 顧客名簿 TJul
    where TJul.月 = 7 and TJul.会社名 = TAug.会社名);

――でどうでしょう。
    • good
    • 0

えぇど、データベース…という事ですから、SQL…でしょうか?



>1.7月分の顧客名簿と、8月分の顧客名簿を比較し、8月分新規の会社名のものだけ抽出する。

7月にはない顧客が新規顧客ですよね?
7月の顧客名簿と8月の顧客名簿が別のテーブルだとすると…
Select 会社名 From 8月の顧客名簿 Where 会社名=(
Select 会社名 From 7月の顧客名簿)

>2.8月顧客名簿に、同じ会社名があった場合、一つのみ表示する。

Select 会社名 From 8月の顧客名簿 Group by 会社名

でどうでしょう。
1はちょっと自信ないです。
ごめんなさい。

この回答への補足

どうもありがとうございます。
せっかく答えて下さったのですが、txtファイルのデータでした。
申し訳ありません。

補足日時:2002/09/02 00:12
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す