0

私は、在庫内のアイテムの価格変更の履歴を保持するSQLテーブルからデータを引き出す方法を理解しようとしています。データのレイアウト例を以下に示します。

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

価格が特定のパーセントを超えて変化した場所を見つけることができるように、各アイテムの最後のエントリをプルする必要があります。情報を取得したら、すべてうまくいきましたが、各アイテムの最後の2つの更新のみをプルする方法がわかりません。どんな助けでも大歓迎です

4

2 に答える 2

1

単純に日付順に並べ替えて、ID ごとに正確に 2 行を取得します。

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

これは最後の 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、pricenumeric(8,2));

DECLARE @Counter INT SET @Counter = 1 while @Counter <=(#inventoryitemsからCOUNT(*)を選択)

## temptable select top 2 i.itemno、i.ActPkgCostDate、i.ActPkgCost from InventoryActPkgCostHist i join ## 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 に答える