0

2014-Q2 のように、年と四半期をリストするデータ レコードのラベルを作成したいと考えています。

SQL では、次のような方法でこのタスクを達成できます。

SELECT VARCHAR(YEAR_) CONCAT '-Q' CONCAT(CAST(CEILING(CAST(MONTH_) AS
    DECIMAL(4, 2)) / 3) AS CHAR(1))) AS QTR_ FROM TABLE

DataStage (v 8.5) のトランスフォーマー ステージで同じ結果を収集しようとしています。

If
    (Link.MONTH_ =< 3)
    Then (Link.YEAR_ : '-Q1')
Else
    (If
        (Link.MONTH_ > 3 and Link.MONTH_ =< 6)
            Then (Link.YEAR_ : '-Q2')
    Else
        (If
            (Link.MONTH_ > 6 and Link.MONTH_ =< 9)
                Then (Link.YEAR_ : '-Q3')
        Else
            ('Y' : DSLink2.YEAR : '-Q4')
    )
)

おそらく、Transformer ステージは最適なオプションではありません。現在、派生がエラーを発生させるため、すべての提案を歓迎します。

4

2 に答える 2

0

次の導出は十分に機能します。

If (DataSet.MONTH < 4) Then DataSet.YEAR:"-Q1" Else If (DataSet.MONTH > 3 AND DataSet.MONTH < 7) Then DataSet.YEAR:"-Q2" Else If (DataSet.MONTH > 6 AND DataSet.MONTH < 10) Then DataSet.YEAR:"-Q3" Else DataSet.YEAR:"-Q4"

生産するには:

2014-Q1
2014-Q2
etc...
于 2014-08-08T15:35:13.560 に答える