2017-01-11 51 views
0

我有一個表,這是庫存連續在不同的日子不同的項目列表的水平。日期不規則。我想從每個SKU組的最後一個已知值中獲取一個更改表。日期不規則時,最好的方法是什麼?SQL Server的更改是分區組

SKU | Quantity | Date  
--- | -------- | ----  
123 | 20  | 1/1/17  
123 | 20  | 1/2/17  
123 | 45  | 1/6/17  
123 | 36  | 1/10/17  
555 | 23  | 1/2/17  
555 | 54  | 1/5/17  
555 | 56  | 1/9/17  
555 | 13  | 1/11/17 
+2

提供的數據的結果集是多少? –

回答

0

我想我找到的東西,我需要工作!想在這裏傳話:

SELECT SKU, 日期, 數量 - OVER(PARTITION BY SKU,日期按SKU順序)QTY_CHG LAG(數量,1,0)到#tbl FROM

從#tbl中選擇*其中QTY​​_CHG!= 0

0

如果你想要得到的值作爲-的某個特定日期,可以這樣做:

select t.* 
from t 
where t.date = (select max(t2.date) 
       from t2 
       where t2.sku = t.sku and t2.date <= @ASOFDATE 
       );