Ms access MS Access-为每次新购买添加最新价格

Ms access MS Access-为每次新购买添加最新价格,ms-access,Ms Access,我在购买表中使用这些数据: Mat_ID Date Price 11 5.1.2018 10 11 7.1.2018 12 11 9.1.2018 14 12 5.1.2018 10 12 7.1.2018 12 13 9.1.2018 14 13 5.1.2018 10 我想要的输出查询

我在购买表中使用这些数据:

Mat_ID     Date          Price
11         5.1.2018      10
11         7.1.2018      12
11         9.1.2018      14
12         5.1.2018      10
12         7.1.2018      12
13         9.1.2018      14
13         5.1.2018      10
我想要的输出查询是另一列显示上次购买价格:

Mat_ID     Date          Price   PrevPrice
11         5.1.2018      10      Null
11         7.1.2018      12      10
11         9.1.2018      14      12
12         5.1.2018      10      Null
12         7.1.2018      12      10
13         9.1.2018      14      Null
13         5.1.2018      10      14
你能推荐一些吗? 谢谢大家!

试试这个:

Select 
    *, 
    (Select Top 1 Price 
    From YourTable As T 
    Where T.Mat_ID = YourTable.Mat_ID And T.[Date] < YourTable.[Date] 
    Order By T.Mat_ID, T.[Date] Desc) As PrevPrice
From
    YourTable

请显示到目前为止您尝试了什么。我尝试了这个,它要求我提供a.ICM_代码:选择a.ICM_代码,a.PER_日期从Vydaje作为左连接从Vydaje中选择不同的前1个PER_日期,其中Vydaje.ICM_代码=a.ICM_代码按日期排序描述为a.PER_日期上的udaj1;我知道这段代码没有获得价格,但我尝试获取最后一个日期进行验证。这是我在测试SQL server时得到的,但我需要它在Access中,它无法识别行号。选择a.*、b.price、b.date\u 1、b.row\u num、b.mat\u ID、a.date\u 1-b.date\u 1作为差异,从表名a左侧外部联接中选择row\u编号按mat\u ID的超额分配按日期的超额分配按日期的超额分配按日期的超额分配按日期的超额分配按日期的超额分配按日期的超额分配按日期的超额分配按日期的超额分配按日期的超额分配按日期的超额分配按日期的超额分配按日期的超额分配按日期的超额分配作为行的超额分配按日期的超额分配按日期的超额分配按日期的超额分配按日期的超额分配,a.mat_ID=b.mat_ID和a.row_num=b.row_num+1上的表名b中的mat_ID、price、date_1对不起,错过了订单。更正。谢谢@Gustav,但我在后台看到PrevPrice列为空的查询,并且此子查询最多只能返回一条记录。好的,您可能还需要在Order by中包含Mat_ID。请看编辑后的答案。