sql-server - 根据截止日期将事务记录从事务表移动到存档表 - SQL Server
问题描述
在我们的应用程序中,我们有一个包含大量数据的事务表。因此我们决定根据提供的截止日期将旧数据移至存档表(例如,如果截止日期为 2013 年,则将 2013 年之前的所有记录移至存档表)。我们有以下三个表 Transaction_Details、Transaction_Headers 和 Bill_Mapping(我没有包括所有表和所有列):
Transaction_Details
表包含ID
(事务 ID)Transaction_Header_ID
和其他详细信息。
Transaction_Headers
包含有关该交易的其他详细信息(例如Payment_Type_ID
和GL_Date
(我们想将截止与此列进行比较)等)
Bill_Mapping
表包含与其他交易(贷记和借记)的交易映射和Amount
.
我需要一个存储过程,它将根据提供的截止日期返回所有交易(所有交易低于截止日期)。
示例:截止日期为 2013-11-01 00:00:00.000
现在,如果您在上Transaction_Details
表(屏幕截图)中看到,标记为绿色的 ID 的GL_Date
(在Transaction_Headers
表中)小于截止日期。
现在在Bill_Mapping
表格中,您可以看到事务 id 5434125 链接到 5420422 (GL_Date : 2013-10-05) 和 5415415 (GL_Date: 2013-12-01)。所以 5420422 低于截止日期,5415415 高于截止日期。在这里,我不想将这 3 个事务 ID 移动到存档表(因为即使 5434125 和 5420422 低于截止日期。但 5434125 部分链接到高于截止日期的 5415415)。
所以规则是,基于bill_mapping
表格,即使一个交易 ID 低于截止日期并且部分映射到任何高于截止日期的交易。这样一来,我们就不必将所有链接的事务移动到存档表。
解决方案
推荐阅读
- typescript - 为什么 Babel 不为 IE11 提供 URLSearchParams polyfill
- excel - Excel vba 翻译 IE.Document 为空
- flutter - 来自 JsonPalceHolder 的 Rx Flutter 请求列表
- architecture - 部署在云上与本地部署时应用程序级别的变化是什么
- c# - 类是继承接口还是实现接口?
- python - 用matplotlib绘制pandas数据框的分段折线图
- amazon-web-services - 当响应状态不是 200 时,响应标头中不存在 X-Amzn-Trace-Id
- sql - 在插入触发器之前创建以在 sql 中添加 sysdate + 30 分钟
- ios - 如何在调试中有 2 种语言,而在生产中只有 1 种语言?
- windows - Windows 批处理 - 要求用户输入默认值