Sql 后进先出实施-获取包裹
我有一个要求,我需要计算手头上的特定股票是否持有超过X天(假设X是20天)。如果持有时间少于X天,则将其从计算中排除 比如说Sql 后进先出实施-获取包裹,sql,sql-server-2008-r2,Sql,Sql Server 2008 R2,我有一个要求,我需要计算手头上的特定股票是否持有超过X天(假设X是20天)。如果持有时间少于X天,则将其从计算中排除 比如说 ID = 1 1st Jan Buy = 10 Total 10 ID = 2 2nd Jan Buy = 10 Total 20 ID = 3 15th Jan Sell = 5 Total 15 ID = 4 2nd Feb Sell = 15 Total 0
ID = 1 1st Jan Buy = 10 Total 10
ID = 2 2nd Jan Buy = 10 Total 20
ID = 3 15th Jan Sell = 5 Total 15
ID = 4 2nd Feb Sell = 15 Total 0
比如说在1月14日,我们需要计算我们手头上持有的股票数量减去任何已经售出但尚未持有超过20天的股票。在这种情况下,自1月15日我们售出5台(5台机组与ID 2挂钩,因此1月2日至15日之间的时间框架不到20天,但2月2日售出的机组(与1月1日/2日批次挂钩)已超过20天,因此仍包括在内
我所实现的是一个迭代解决方案——我见过一些基于CTE的解决方案,但我不确定上述场景是否可以实现。这是我的表格在实现迭代解决方案后的样子
ParentID Child Id Units
1 1 10
---------------------------------------
2 1 10
2 2 10
---------------------------------------
3 1 10
3 2 10
3 2 -5
---------------------------------------
4 1 10
4 2 5
4 2 -5
4 1 -10
这是使用迭代解决方案的表格的最终结果。使用此表格,我可以在任何时间点轻松检查任何一个,构成总金额的包裹,以及将来是否有销售(使用交叉应用).需要查看原始方案示例数据最好作为+。请将您的问题包括在内,包括您当前的尝试和所需的结果。