2017-01-11 33 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 
       );