2017-06-13 5 views
0

「part_number」、「date_of_price_change」および「new_price」の3つのフィールドを持つデータのMicrosoft Accessテーブルがありますが、「new_price」フィールドを変換する必要があります各日付の各部分の完全な「new_price」ではなく、「price_change」です。Microsoft Accessで他の行を参照する行を取得する

これは明らかに、各日付の各固有の部品番号を見て、次の最も早い日付の同じ部品番号のレコードの価格を調べ、価格を差し引いて価格変更を得るプロセスを含む。

問題は、私はAccessでこれを行う方法がわかりませんし、Excel用のレコードが多すぎます。誰でもAccessでこれを行う方法を手助けできますか? (日付の変更はいつでも発生し、定期的ではないことに注意してください)。

事前に感謝します。

アナ

+0

なぜこれでmysqlにタグを付けましたか? – SandPiper

+0

また、構造を変更しないでください。あなたが現在持っているのはベースデータです。あなたが何をしているかは、いつでも価格が価格の変化の長いリストから導き出されるよりもはるかに簡単に、ビュー/クエリでこれから導き出すことができます。 – SandPiper

+1

@SandPiperは、サブクエリを使用して各レコードに前の価格を引き込み、その差を計算することを提案していると思います。 http://allenbrowne.com/subquery-01.html#AnotherRecordを確認してください。生データを変更しません。 – June7

答えて

0

その後、以下のようなクエリ何かを実行し、Moneyデータ型として新しい列を追加してprice_change。場合によっては、APPENDテーブルを使用して最初にテーブルを新しいテーブルにバックアップするようにしてください。それは新しい列なので、私は問題ではないかもしれません。

UPDATE 
    T1 
SET 
    T1.price_change = T1.new_price - Nz((SELECT top 1 T2.new_price from MyTable T2 WHERE T2.part_number = T1.Part_Number ORDER BY date_of_price_change DESC),0) 
FROM 
    MyTable T1 
+0

コードDanielに感謝します。 多くの努力に感謝します。 – user2720198

関連する問題