Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database MS Access:查询两条记录的差异,人工创建第三条记录_Database_Ms Access_Vba - Fatal编程技术网

Database MS Access:查询两条记录的差异,人工创建第三条记录

Database MS Access:查询两条记录的差异,人工创建第三条记录,database,ms-access,vba,Database,Ms Access,Vba,这是为了跟踪市场头寸。原始数据从代理提供的.csv文件中提取。每一行都是一条记录。当交叉交易发生时,我的问题就起作用了。例如,持有1000股,一次卖出2000股,并空头仓位。我有两个原始数据记录,一个买入1000股,一个卖出2000股。但是一个新的位置已经被创造出来——做空1000股。这就是3个仓位变动,开盘1000股,收盘1000股,开盘1000股 我需要一个能够识别1000股已买入的查询,这是一个多头/买入仓位,但是识别出超过1000股的出售将结束多头仓位,获取差额并人为地创建一个新的空头仓

这是为了跟踪市场头寸。原始数据从代理提供的.csv文件中提取。每一行都是一条记录。当交叉交易发生时,我的问题就起作用了。例如,持有1000股,一次卖出2000股,并空头仓位。我有两个原始数据记录,一个买入1000股,一个卖出2000股。但是一个新的位置已经被创造出来——做空1000股。这就是3个仓位变动,开盘1000股,收盘1000股,开盘1000股

我需要一个能够识别1000股已买入的查询,这是一个多头/买入仓位,但是识别出超过1000股的出售将结束多头仓位,获取差额并人为地创建一个新的空头仓位,即使没有这方面的记录

所有这些记录都属于事务表。这是.csv文件导入到的位置

我的查询使用交易表中的四列对期初和期末金额进行分组:日期、时间、符号、买入/卖出。然后对每组的数量字段求和

我只知道如何查询原始数据,因此对于上述场景,我只获得一行信息。但a需要新职位的第二行信息

因此,与此相反:

symbol | qty opened | qty closed

xyz    |    1000    |     2000
我需要这个:

symbol | qty opened | qty closed

xyz    |   1000     |     1000

xyz    |  -1000     |    Null

如果您能提供任何指导,我们将不胜感激。

假设ID是本例中交易的顺序,我已经使用了一个流动金额:

获取此结果的查询是

挑选 T.ID, T.TradeSize,
从tblTrades TS中选择SUMTradeSize,其中TS.ID您不需要您所说的您需要的。您需要一个具有运行总和的查询。你可以在互联网上找到很多例子。我已经考虑过了,但我认为这是行不通的。数据库需要知道一个仓位何时关闭,以及一个新仓位何时启动,以便对交易进行进一步分析。如果每次余额超过0时,运行总计都可以识别,将其分离到自己的信息行中,并运行查询的其余部分进行分析,那么运行总计将非常棒。我会进一步调查的。谢谢你的指导。