用于开仓计算的MS SQL查询

时间:2018-04-10 12:00:34

标签: sql sql-server

我想计算开头股票,如链接图片所示,我有数百万条记录和100多个位置。任何人都可以指导我。我已经使用了上面提到的打击查询,但是这个查询在数百万条记录中也显示出来。

创建表#temp ( item nvarchar(20), 位置nvarchar(10), [交易日期]日期, 价格小数(20,2), 数量int, price_Change decimal(20,2))

插入#temp SELECT'Itm-005','A','2017-01-05','10','13','0'  UNION ALL SELECT'Itm-007','A','2017-01-15','15','20','0'
 UNION ALL SELECT'Itm-007','B','2017-01-16','14','14','0'  UNION ALL SELECT'Itm-007','A','2017-01-21','17','6','2'
UNION ALL SELECT'Itm-005','A','2017-01-25','8','17',' - 2'  UNION ALL SELECT'Itm-007','A','2017-01-27','13','6','-4'

从#temp

中选择*

选择项目,位置,[交易日期],价格,数量,价格变化  ,(从#temp c中选择isnull(sum(qty),0),其中c.item = p.item和c.Location = p.Location和c。[Transaction Date]< p。[Transaction Date])[Opening股票]  来自#temp p

Need Opening Stock

1 个答案:

答案 0 :(得分:0)

感谢所有人,

虽然种子很慢,但我已经解决了同样的问题。查询如下: -

从#temp c中选择项目,位置,[交易日期],价格,数量,价格变化,(选择isnull(sum(qty),0),其中c.item = p.item和c.Location = p.Location和c。[交易日期]< p。[交易日期])[开盘股票]来自#temp p