これらの 4 つのフィールドを持つ価格履歴テーブルがあります。
- ID
- 日にち
- 製品
- 価格
すべての製品には毎日の記録があります。各製品の開始価格のレコードと、価格が変更されるたびのレコードを返すクエリを作成しようとしています。
価格でグループ化しようとしましたが、1 レコードしか返されないため、後で価格が変更されると明らかにこれが壊れます。
このクエリを作成して、作業しようとしているサンプルデータを生成しました
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 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
これを達成するための最良の方法についてのアイデアはありますか?