我一直在试图弄清楚如何从sql表中提取数据,其中包含库存中物品的价格变化历史记录。数据如何布局的示例如下:
Item No Date changed Price
1 11/20/2012 15
2 11/28/2012 25
1 12/1/2012 18
我需要提取每个项目的最后一个条目,以便我可以找到价格变化超过一定百分比的地方。一旦我得到所有信息,但我不知道如何只为每个项目提取最后两个更新。任何帮助将不胜感激
答案 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
端
感谢大家的帮助