根据库存计算每个新日期的平均成本价格

问题描述

我正在尝试在Access中创建一个查询,以为所有记录计算另一个查询的平均成本价,该查询包含多个日期范围内的股票买卖。

T0中的平均成本价格公式为:((累计头寸T-1 *平均成本Px T-1)+ Qtty T0 *价格T0)/(累计头寸T-1 + Qtty T0)

如果记录是卖出,我只减去累计头寸的数量并保持平均成本

我不能为其使用子查询,因为我必须为同一查询在同一列上获得一条记录,因此这是不可能的。我实际上对如何做到这一点迷失了,因为我有大约30.000条关于股票交易的记录,我需要每个日期的平均成本价。在这种情况下,最好的做法是什么?

SELECT qry_sample_data_excel_summ.Date,qry_sample_data_excel_summ.Ticker,qry_sample_data_excel_summ.buy_sell,qry_sample_data_excel_summ.SumOfQuantity AS Qtty,qry_sample_data_excel_summ.AvPrice AS Price,(SELECT Sum(Dupe.SumOfQuantity)
FROM qry_sample_data_excel_summ AS Dupe
WHERE ((Dupe.Date)<qry_sample_data_excel_summ.Date) AND ((Dupe.Ticker)=qry_sample_data_excel_summ.Ticker)) AS [Acumm_Position T-1],"?" AS Av_Cost_Px
FROM qry_sample_data_excel_summ
GROUP BY qry_sample_data_excel_summ.Date,qry_sample_data_excel_summ.SumOfQuantity,qry_sample_data_excel_summ.AvPrice,"?";
<table><tbody><tr><th>Date</th><th>Ticker</th><th>buy_sell</th><th>Qtty</th><th>Price</th><th>Acumm_Position T-1</th><th>Av_Cost_Px</th></tr><tr><td>2-Jan-20</td><td>BA</td><td>B</td><td>17,000</td><td>333.00</td><td> </td><td>333.00</td></tr><tr><td>2-Jan-20</td><td>BA</td><td>S</td><td>(5,000)</td><td>332.36</td><td> </td><td>333.00</td></tr><tr><td>2-Jan-20</td><td>KHC</td><td>B</td><td>4,000</td><td>31.64</td><td> </td><td>31.64</td></tr><tr><td>3-Jan-20</td><td>BA</td><td>B</td><td>1,000</td><td>330.53</td><td>12,000</td><td>332.81</td></tr><tr><td>3-Jan-20</td><td>BA</td><td>S</td><td>(2,000)</td><td>333.74</td><td>12,000</td><td>332.81</td></tr><tr><td>6-Jan-20</td><td>BA</td><td>B</td><td>1,000</td><td>328.32</td><td>11,000</td><td>332.44</td></tr><tr><td>6-Jan-20</td><td>BA</td><td>S</td><td>(7,000)</td><td>334.45</td><td>11,000</td><td>332.44</td></tr><tr><td>6-Jan-20</td><td>KHC</td><td>B</td><td>4,000</td><td>31.09</td><td>4,000</td><td>31.37</td></tr><tr><td>7-Jan-20</td><td>BA</td><td>S</td><td>(5,000)</td><td>341.56</td><td>5,000</td><td>324.83</td></tr></tbody></table>

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)