2016-04-04 10 views
0

列を作成するにはどうすればよいですか?Tibcoスポット火災の別の列の文字列値を比較して計算列を作成する方法

は、私は他の少なくとも一つの「C」はcol1とcol2のグループのためにCOL3に存在する場合は、「成功」を言い、計算列は、「失敗」必要なテーブル

 
col1 | col2 | col3 
    1 | x | ER 
    1 | x | IG 
    1 | x | C 
    1 | y | ER 
    1 | y | ER 
    2 | y | IG 
    2 | y | C 
    2 | y | ER 
    2 | z | ER 
    2 | z | IG 

を検討してください。

ので、私の新しいテーブルがのようになります。

 
col1 | col2 | col3 | calculated_col 
    1 | x | ER | success 
    1 | x | IG | success 
    1 | x | C | success 
    1 | y | ER | fail 
    1 | y | ER | fail 
    2 | y | IG | success 
    2 | y | C | success 
    2 | y | ER | success 
    2 | z | ER | fail 
    2 | z | IG | fail 

である:col1とcol2にからの1と 'X' の組み合わせのための

  1. それぞれLEAT 1 'C' でありcol3では、結果が '成功'
  2. col1とcol2のそれぞれの 'y'の組み合わせについては、col3に 'c'がないため、結果は 'fail'となります。
  3. th col1とcol2の2と 'y'の組み合わせそれぞれcol3には少なくとも1つの 'c'があるので、col1とcol2の2と 'z'の組み合わせについてはそれぞれ式結果が '成功'
  4. COL3における、式の結果であるので、NO「C」

答えて

0

はあなたが定義階層(この場合、COL1> COL2)に応じてセルの値を収集する機能OVER Intersectを使用することができ「失敗」。

次の式では、ご希望の結果が得られます。

If(
    Find("C", UniqueConcatenate([col3]) OVER (Intersect([col1], [col2]))) > 0, 
    "success","fail" 
) 

それはしかし、特に堅牢ではありません:あなたは「C」を含むcol3内の任意の他の値を持っている場合、この式は「成功」と評価されます!

+0

ありがとう、完璧に機能しました! –