これについてインターネットで検索するのに苦労しているので、ここで T-SQL の質問をすることにしました。CUSTというテーブルがあります。CUST には、顧客の登録日、名前、会社、住所、電子メールなどが含まれます。entrydate に基づいて新規顧客を検索する簡単なクエリを作成しました。
Select * from CUST WHERE ENTRYDATE between '2012-08-01' and '2012-08-30'
問題が見つかったことを除いて、これはうまく機能します。当社のウェブストアが新しい注文を作成するときに、顧客の詳細が正確に一致しない場合、新しい顧客が作成されます。そのため、元の結果を取得し、cust.firstname + cust.lastname + cust.company が複数回出現する場合は、結果セットをトリミングしたいと考えています。これらを個々のクエリに書き込むことができますが、単一の SQL スクリプトでこれを行う方法がわかりません。
名前で結合してテーブルに戻すことを考えました。結合はエラーにはなりませんが、発生をカウントする方法がわかりません。顧客数をカウントすることを考えていました。
私の結合は次のようになります (読みやすくするために、group by と列の選択を取り除きました。
from CUST
    Right Outer Join 
    (
    select *
    from CUST 
    WHERE ENTRYDATE between '2012-08-01' and '2012-08-30'
            AND LTRIM(RTRIM(Firstname + Lastname + Company)) <> ''
    Group By *     
    ) as newcs
    on LTRIM(RTRIM(CUST.Firstname + CUST.Lastname + CUST.Company)) = LTRIM(RTRIM(newcs.Firstname + newcs.Lastname + newcs.Company))
助言がありますか?