価格履歴から価格変更の日付を返すためにTSQLは、私はこれらの4つのフィールドを持っている価格履歴テーブルを持つ
- 同上
- 日
- 製品
- 価格
すべての製品に一日の記録があります。私は、価格が変わったたびにレコードごとに各製品の開始価格のレコードを返すためのクエリを作成しようとしています。
価格でグループ化しようとしましたが、後で価格が変更されたときにこれが壊れてしまうのは明らかに1レコードしか返されないからです。私は私が期待していた結果が
1 2012-01-01 Tesco 1.99
2 2012-01-02 Tesco 1.97
5 2012-01-04 Tesco 1.99
9 2012-02-11 BP 1.99
8 2012-02-20 BP 1.01
上の任意のアイデアである必要があり、私はそのサンプルデータから
CREATE TABLE #PriceHistory
(
[Id] INT IDENTITY,
[Date] DATETIME ,
[Product] NVARCHAR(30) ,
[Price] MONEY
)
INSERT INTO #PriceHistory([Date],[Product],[Price])
SELECT '20120101', 'Tesco', 1.99
UNION ALL
SELECT '20120102', 'Tesco', 1.97
UNION ALL
SELECT '20120103', 'Tesco', 1.97
UNION ALL
SELECT '20120105', 'Tesco', 1.99
UNION ALL
SELECT '20120104', 'Tesco', 1.99
UNION ALL
SELECT '20120106', 'Tesco', 1.99
UNION ALL
SELECT '20120101', 'BP', 1.99
UNION ALL
SELECT '20120102', 'BP', 1.01
UNION ALL
SELECT '20120103', 'BP', 1.99
SELECT * FROM #PriceHistory
DROP TABLE #PriceHistory
をオフに動作するようにしようとしているサンプルデータを生成するには、このクエリを書いている
これを達成する最善の方法は?
結果は1,2,5,7,8,9となるはずですか? –
申し訳ありませんが、私は日付で発注したはずです。とにかく、ほとんどの場合、それは日付順になっていますが、私はサンプル中のいくつかの不具合を投げ捨ててしまいました。 – Gavin