如何解决根据库存计算每个新日期的平均成本价格
我正在尝试在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 举报,一经查实,本站将立刻删除。