我正在创建一份报告,统计每周更新记录的次数。
听起来很简单,对吧?让我在这一挑战中加入一些复杂性。
我面临的挑战是,我使用的日期范围依赖于另一个字段,如果更新了它,它将把报告完全抛出。通过下面的示例,我将尽量保持这一点:
所以我有张桌子
book.book_keeping_2014该表中的列如下:
record_number - Automatically generated by a SEQUENCE command
amount
record_name
record_updated数据库中的记录已经存在,最好只更新一次。
记录名称具有特定的格式,在该格式中,日期优先于文件信息的其余部分。一个示例文件名是:
20140106-blah-blah-blah-blah.txt下面是我为UpdateCommand定义的内容:
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字段也会更新。
我面临的挑战是,如果我为一月的第一周做一次每周的报告,然后我在一月的第四周更新了记录,这就会抛出一份报告。月报也是如此。
我的问题是,如何防止/重新编码我的Update语句,以便当左命令第一次提取正确的信息时不会被覆盖?
对于日期转换场景,我也有类似的挑战,但我可能会提出一个不同的问题。
发布于 2014-01-28 21:23:31
如果可以更改表的结构,则可以为HasUpdated添加一个标志。然后,在查询中,只更新HasUpdated = 0的行。
https://stackoverflow.com/questions/21417037
复制相似问题