2016-12-29 15 views
1

我有要求處理以下數據並根據以前的行值生成兩個新列(Old_OH和New_OH)。希望有人可以幫助我使用SQL查詢來引入新列。需要幫助來計算使用teradata中此行計算中的上一行的新列

幾件事情:

  1. 對於每個項目和STR_I組合我具有由FULFILLMENT DMND_Q的多個條目。
  2. 首先Old_OH的第一值將是BOH和從第二次出現它將New_OH的先前值
  3. New_OH計算新OH = Old_OH - DMND_Q
  4. 兩者Old_OH和New_OH是由ITEM分區和由EVNT_TS訂購的STR_I廣告。

數據:

ORD_D  EVNT_TS  ITEM  STR_I FULFILLMENT DMND_Q BOH Old_OH New_OH 

11/24/2016 18:57:13 51150417 4 STORE   1  2 2  1 
11/24/2016 17:48:12 51150417 4 SPU   1  2 1  0 
11/24/2016 16:23:15 51150417 5 SPU   1  3 3  2 
11/24/2016 20:12:44 51150417 48 STORE   1  3 3  2 
11/24/2016 18:27:14 51150417 78 STORE   1  3 3  2 
11/24/2016 22:59:35 51150417 78 STORE   1  3 2  1 
11/24/2016 17:24:11 51150417 78 SPU   1  3 1  0 

請讓我知道如果您有任何問題。

+0

是'BOH'總是對每個項目'/ STR_I'組合相同的值,它應該是從第1行的值? – dnoeth

回答

0

很好的答案是 BOH + DMND_Q - 總和(DMND_Q) 在(PARTITION BY項目,STR_I ORDER BY ORD_D,EVNT_TS ROWS無界之前) AS Old_OH, BOH - 總和(DMND_Q) 在(PARTITION BY項目,STR_I ORDER BY ORD_D,EVNT_TS ROWS無界之前) AS New_OH