2016-12-29 19 views
1

У меня есть требование работать с данными ниже и генерировать два новых столбца (Old_OH и New_OH) на основе предыдущих значений строк. Надеюсь, кто-то может помочь мне с SQL-запросом для ввода новых столбцов.Нужна помощь для расчета новых столбцов с использованием предыдущей строки в вычислении этой строки в teradata.

Пара вещей:

  1. Для каждого элемента и комбинации STR_I у меня есть несколько записей DMND_Q от ИСПОЛНЕНИЯ.
  2. Для того, чтобы начать с первым значением Old_OH будет BOH и от второго вхождения будет предыдущее значение New_OH
  3. Расчета New_OH: Нью-ОН = Old_OH - DMND_Q
  4. Оба Old_OH и New_OH является разбиением по ITEM и Объявление STR_I по заказу EVNT_TS.

данных:

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

Is 'BOH' всегда то же самое значение для каждого' ITEM/STR_I' комбинации или оно должно быть значение от 1-й строки ? – dnoeth

ответ

0

хорошо ответ ВОН + DMND_Q - Сумма (DMND_Q) Over (PARTITION BY ITEM, STR_I ORDER BY ORD_D, EVNT_TS ROWS неограниченного Предшествующая) AS Old_OH, ВОН - Сумма (DMND_Q) Более (PARTITION BY ITEM, STR_I ORDER BY ORD_D, EVNT_TS ROWS) Предыдущие неограниченного А.С. New_OH