これについてインターネットで検索するのに苦労しているので、ここで 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))
助言がありますか?