2015-11-01 78 views
0

我的表看起來像現在這種權利(即需要我的問題的樣本)在同一個表的另一列:更新列數據根據在MySQL

表的名稱:JurnalEntries.dbo

JE_InsertDate JE_OriginalFileName 

2015-04-01    NULL 
2015-04-01    NULL 
2015-03-01    NULL 
2015-03-01    NULL 
2015-02-01    NULL 
2015-02-01    NULL 

而且我想根據JE_InsertDate(日期類型)在JE_OriginalFileName中插入值。例如:

如果JE_InsertDate2015-02-01再放入JE_OriginalFileName在同一行FI 02 2015.xlsx

如果JE_InsertDate2015-03-01比放在JE_OriginalFileName在同一行FI 03 2015.xlsx

表的需求看起來像這樣:

JE_InsertDate JE_OriginalFileName 

2015-04-01    FI 04 2015.xlsx 
2015-04-01    FI 04 2015.xlsx 
2015-03-01    FI 03 2015.xlsx 
2015-03-01    FI 03 2015.xlsx 
2015-02-01    FI 02 2015.xlsx 
2015-02-01    FI 02 2015.xlsx 

你能幫我解決這個問題嗎?

評論:文件名[(FI MM YYYY).xlsx]中有空格。

非常感謝!

回答

1

你可以用CONCAT嘗試()

UPDATE JurnalEntries.dbo 
SET JE_OriginalFileName = CONCAT('FI ', MONTH(JE_InsertDate),' ', YEAR(JE_InsertDate),'.xlsx') 

如果JE_InsertDate是一個日期,否則使用的串代替YEAR()和MONTH()

0

您需要使用CASE更新。

UPDATE JurnalEntries.dbo 
    SET JE_OriginalFileName = CASE 
    WHEN JE_InsertDate='2015-02-01' THEN 'FI 02 2015.xlsx' 
    WHEN JE_InsertDate='2015-03-01' THEN 'FI 03 2015.xlsx' 
    END 

希望這有助於..