長時間讀者,第一次海報。希望一些SQL大師能夠借給我一些處理能力來優雅地解決SQL問題,而不需要光標。使用tsql創建一個連續的時間線集
我想創建一個時間線類型結果集從一個數據集與金錢和日期,其中他們出現的順序是重要的。請參閱下面的示例數據和期望。
DECLARE @OrderData TABLE(
ID INT IDENTITY,
ProductId INT,
WarehouseId INT,
Cost MONEY,
SaleDate DATETIME
)
INSERT INTO @OrderData
VALUES
(1, 1, 2.71, '2012-02-23 10:01')
,(1, 2, 2.71, '2012-02-23 10:02')
,(1, 1, 2.71, '2012-02-23 10:03')
,(1, 1, 2.71, '2012-02-23 10:04')
,(1, 1, 2.71, '2012-02-23 10:05')
,(1, 1, 2.8, '2012-02-23 10:06')
,(1, 1, 2.9, '2012-02-23 10:07')
,(1, 1, 2.71, '2012-02-23 10:08')
,(1, 1, 2.71, '2012-02-23 10:09')
我正在尋找的結果是銷售與和日期爲它自己的一套銷售中的產品和倉庫組合的時間線。只要銷售價格在數據集中發生變化,就應該在結果集中產生新的一行。
樣本數據的結果結構。
Product, warehouse, minsale date, Max sale date
1,1,2.71, 2012-02-23 10.01, 2012-02-23 10.05
1,1,2.80, 2012-02-23 10.06, 2012-02-23 10.06
1,1,2.90, 2012-02-23 10.07, 2012-02-23 10.07
1,1,2.71, 2012-02-23 10.08, 2012-02-23 10.09
1,2,2.71, 2012-02-23 10.02, 2012-02-23 10.02
歡呼任何幫助。
你能解釋一下你的樣品結果,請最後一排?爲什麼它沒有被第一行處理? –
@Damien_The_Unbeliever:你的意思是唯一的「倉庫= 2」嗎? –
@AndriyM - 是的,我的眼睛不知何故掩蓋了2. –