我在創建計數在給定的週記錄多少次更新報告的過程。如何保持轉換領域的更新命令語句由同一個更新命令語句被改寫?
聽起來很容易,對不對?讓我在應對這一挑戰方面投入一些複雜性。
我面臨的挑戰是我使用的日期範圍依賴於另一個字段,如果更新,它會在日期範圍字段中完全拋出報告。我會盡量保持這個儘可能簡單,用下面的例子:
所以我有一個表
book.book_keeping_2014
在此表有以下欄目:
record_number - Automatically generated by a SEQUENCE command
amount
record_name
record_updated
中的記錄數據庫已經存在,理想情況下只更新一次。
記錄名稱具有特定格式,其中日期先於文件信息的其餘部分。樣本文件名應該是:
20140106-blah-blah-blah-blah.txt
因此,這裏是我已爲更新命令定義:
UPDATE book.book_keeping_2014 SET [amount] = @amount,
record_name = @record_name, record_updated = LEFT(record_name,8)
WHERE [record_number] = @record_number
所以在record_name場此條 -
20140106-blah-blah-blah-blah(etc).txt
將進入record_updated字段爲:
20140106
因爲它的代碼工作正常。但是,record_name列中的給定單元格可能需要更新的時間可能很奇怪。根據上面的UpdateCommand,如果record_name字段得到更新,那麼record_updated字段。
我面臨的挑戰是如果我爲1月份的第一週創建一份每週報告,然後在1月份的第4周更新記錄,這將會拋出一個報告。每月報告也一樣。
我的問題是我怎樣才能防止/重新編寫我的更新語句,以便當LEFT命令第一次拉動正確的信息時它不會被覆蓋?
我對日期轉換場景也有類似的挑戰,但我可能只是把它放在一個不同的問題中。
你的意思是加入一個名爲「HasUpdated」或者這是系統設置欄? –
向表中添加一個位列。它可以通過一個觸發每當該行被更新,將列更改爲1或在'UPDATE'報表進行管理維護。 – TTeeple