2016-08-30 4 views
0

У меня есть набор данных, содержащий историю событий продажи, и мне нужно создать столбец, чтобы показать, активна ли продажа. Мой набор данных выглядит следующим образом:Поиск и сравнение столбцов для создания новых столбцов (Teradata SQL)

item | original_price | sale1 | sale2 | sale3 | current_price 
-----|----------------|-------|-------|-------|-------------- 
1 | 3.00   | 2.75 | ?  | ?  | 2.75 
2 | 4.00   | ?  | 3.50 | ?  | 4.00 
3 | 10.00   | 7.50 | ?  | 8.50 | 8.50 

в случае item 1, новое поле должно сказать активное, поскольку вопрос по-прежнему в sale1 цене. Item 2 должен сказать неактивный, так как цена больше не продается.
Item 3 был в продаже, а затем не был, и теперь в продаже снова active.
Итак, SQL необходимо вытащить все эти поля и создать новый столбец, сравнив current_price с самой последней переменной sellx.

Мне нужно реализовать это в текущем SQL-процессе, но не знаю, как это сделать синтаксически. Благодарю.

ответ

2

Это, кажется, чтобы соответствовать вашей дефиниции:

case 
    when coalesce(sale3, sale2, sale1) = current_price then 'active' 
    else 'nonactive' 
end 
+0

Спасибо вам @dnoeth. Это прекрасно работает. У меня была проблема с внедрением, но это было связано с тем, как я кодировал недостающие значения ('' vs NULL). – pyll