2014-03-27 85 views
0

我想通過返回年僅 從日期字段獲取最大(年)到Varchar字段我希望有人可以提供幫助。更新SQL表與最大日期

這是我到目前爲止。

UPDATE MasterDraft 
      SET 
      Last_title_changed = (select Max((deed_dt)) 
      From APPRAISAL_Deed_History) 
      WHERE MasterDraft.Prop_ID = APPRAISAL_Deed_History.prop_id 

這是我的源表:

+---------+------------+ 
| prop_id | deed_dt | 
+---------+------------+ 
|  40 | 1988-07-22 | 
|  40 | 1984-03-01 | 
|  40 | 2005-07-12 | 
|  40 | 1983-07-01 | 
|  40 | 1992-01-31 | 
|  40 | 1983-01-01 | 
|  40 | 1990-01-31 | 
+---------+------------+ 

輸出上MasterDraft.Last_title_Changed應該是2005年

回答

1

這應該是Max(YEAR(deed_dt))

編輯:所以你要更新所有記錄和使用道具ID的最大年份?然後將where子句移到您的子選擇。 APPRAISAL_Deed_History.prop_id在內部查詢之外是未知的。

 
    UPDATE MasterDraft 
    SET Last_title_changed = 
    (
     select Max(Year(deed_dt)) 
     from APPRAISAL_Deed_History 
     where APPRAISAL_Deed_History.prop_id = MasterDraft.Prop_ID 
    ); 
+0

感謝,但將獲得的多部分標識符「APPRAISAL_Deed_History.prop_id」無法綁定錯誤 – user2722043

+0

是的,它的工作完美,非常感謝節電器,但仍然無法理解 – user2722043

+0

@ user2722043在你提到的查詢你沒有引用表「APPRAISAL_Deed_History」表。 –

0
UPDATE MasterDraft 
    SET Last_title_changed = Max(YEAR(deed_dt) 
    From APPRAISAL_Deed_History INNER JOIN MasterDraft 
    WHERE MasterDraft.Prop_ID = APPRAISAL_Deed_History.prop_id 
+0

謝謝,但會得到多部分標識符「APPRAISAL_Deed_History.prop_id」無法綁定錯誤 – user2722043

+0

@ user2722043上面的查詢將起作用。因爲在你提到的查詢中你沒有引用「APPRAISAL_Deed_History」表。 –