2016-08-30 6 views
0

私は、セールイベント履歴のデータセットを持っています。セールがまだ有効かどうかを示すカラムを作成する必要があります。私のデータセットは、次のようになります。item 1の場合にカラムを検索して新しいカラムを作成する(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 

項目がsale1価格のままであることから、新しいフィールドがアクティブを言う必要があります。 Item 2と表示されます。は価格が販売価格になっていないためです。
Item 3は販売されていましたが、現在販売されておらず、現在販売中ですアクティブです。
したがって、SQLはこれらすべてのフィールドを取得し、最新のSalex変数とcurrent_priceを比較して新しい列を作成する必要があります。

これを現在のSQLプロセスに実装する必要がありますが、これを構文的に行う方法はわかりません。ありがとう。

答えて

2

これはあなたの定義のそれぞれで独立し一致しているようだ:

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

あなたは@dnoethありがとうございます。これは完全に機能します。私は問題を実装していたが、それはどのように私は欠損値( ''対NULL)をコーディングしていたためだった。 – pyll

関連する問題