2015-10-12 73 views
-1

我有一個表customers,表和cities從相關表中選擇一條重要記錄

在客戶表中,city_id與城市表的id_city有關。

customers: name, surname 
cities: ext_code, description, address_code 

的問題在其他領域是我有成千上萬的相關城市,其中ext_code不存在的客戶記錄。

其他地方的城市表格包含大量重複的記錄;在重複的集合中,只有一個記錄具有有效的ext_code

問題是:將city_id替換爲id_city,其中包含有效的ext_code。唯一需要評估的城市是address_codedescription

有什麼建議嗎?

+0

歡迎來到Stack Overflow。我已經刪除了一些口音,因爲它有點難以閱讀。請分享您的代碼到目前爲止。它使其他人能夠更快地幫助你。 –

回答

0

如果

僅領域,以評估城市羣是address_code或 描述

那麼這就是你應該使用什麼樣的加盟上,而過濾掉非「有效ext_code」數據你提到的。

0

下面是一個簡單的方法來做一次客戶更新。 您需要調整代碼才能使其與系統一起工作,但這應該很簡單。

UPDATE Customer 
SET  CityID = 
(
    --This bit will find cities that look like the one we already have, 
    SELECT TOP 1 CityID 
    FROM   City AS X 
    WHERE  X.AddressCode = City.AddressCode 
    OR   X.Description = City.Description 
    ORDER BY  X.ExtCode DESC --This puts nulls last! 
) 
FROM    Customer 
INNER JOIN City ON City.CityID = Customer.CityID