从存储价格历史的sql表中提取数据

时间:2013-01-11 16:14:42

标签: sql

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

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

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

2 个答案:

答案 0 :(得分:1)

按日期对它进行简单排序,并为每个ID检索两行。

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

这是最后两次价格变动。

答案 1 :(得分:0)

这就是我开始工作的方式。 create table ## inventoryitems(ID INT Identity(1,1),itemno char(11));

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

create table ## temptable(item#char(11),changeate datetime,price numeric(8,2));

DECLARE @Counter INT SET @Counter = 1 while @ Counter< =(从## inventoryitems中选择COUNT(*))

开始 插入## temptable 选择前2名i.itemno,i.ActPkgCostDate,i.ActPkgCost 来自InventoryActPkgCostHist我在i.itemno = temp.itemno上加入## inventoryitesm temp 其中temp.id =@Counter和locidd = 3 按itemno,ActPkgCostDate desc

排序

设置@ Counter = @ Counter + 1

感谢大家的帮助