我想为数据记录制作一个标签,列出年份和季度,例如2014年第二季度。
在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')
)
)
也许变压器阶段不是最好的选择,欢迎所有建议,因为现在推导会出错。
答案 0 :(得分: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...
答案 1 :(得分:0)
取月数,减1,求除以3的模数,再加1。
Mod(DataSet.MONTH - 1, 3) + 1