0

我一直在试图弄清楚如何从 sql 表中提取数据,该表包含库存中物品价格变化的历史记录。数据布局示例如下:

Item No   Date changed   Price
1         11/20/2012     15
2         11/28/2012     25
1         12/1/2012      18

我需要为每个项目拉出最后一个条目,这样我才能找到价格变化超过一定百分比的地方。一旦我得到所有信息,但我不确定如何只提取每个项目的最后两个更新。任何帮助将不胜感激

4

2 回答 2

1

简单地按日期排序并准确检索每个 id 的两行。

SELECT Price FROM table WHERE id=2 ORDER BY date_changed DESC LIMIT 0,2

这是最后两次价格变动。

于 2013-01-11T16:26:55.617 回答
0

这就是我让它工作的方式。创建表##inventoryitems (ID INT Identity(1,1),itemno char(11));

插入 ##inventoryitems 从 InventoryActPkgCostHist 中选择不同的 itemno,其中 LocID=3

创建表 ##temptable (item# char(11),changedate datetime,price numeric(8,2));

DECLARE @Counter INT SET @Counter = 1 而@Counter<=(select COUNT(*) from ##inventoryitems)

开始插入 ##temptable 选择前 2 个 i.itemno,i.ActPkgCostDate,i.ActPkgCost 从 InventoryActPkgCostHist 我加入 ##inventoryitesm temp on i.itemno= temp.itemno where temp.id=@Counter and locidd=3 order by itemno ,ActPkgCostDate desc

设置@Counter=@Counter+1

结尾

谢谢大家的帮助

于 2013-01-14T23:11:01.783 回答