我在這個網絡上搜索很困難,所以我以爲我會問這裏的T-SQL問題。我有一張名爲CUST的表格。 CUST包含客戶入口日期,姓名,公司,地址,電子郵件等。我寫了一個簡單的查詢來根據entrydate查找新客戶;針對以前的查詢結果的T-SQL查詢
Select * from CUST WHERE ENTRYDATE between '2012-08-01' and '2012-08-30'
這很好,除了我發現一個問題。當我們的網上商店創建新訂單時,如果客戶詳細信息不完全匹配,則會創建新客戶。既然如此,我想採取我的原始結果,並修剪結果集,如果我有多個cust.firstname + cust.lastname + cust.company事件。我可以在單個查詢中編寫這些代碼,只是不確定如何在單個SQL腳本中執行此操作。
我考慮過在名稱上做一個連接回到表中,雖然連接沒有錯誤,但我不知道如何計算出現次數,我正在考慮計算客戶數量。
我加入這個樣子的(由和列選擇剝離出集團,使其更容易閱讀;
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))
任何建議
您使用的是哪個版本的SQL Server? – JNK
你用什麼來進行顧客登錄?如果您使用電子郵件地址,則可以阻止系統爲同一客戶創建新帳戶。 –
對不起,使用SQL-Server 2003.我無法控制Webstore或客戶訂單系統(創建其他地方的客戶)。我確實可以訪問數據庫。 – MLindsay