我想创建季度部分,但没有上限功能,因为我有每个季度的具体日期。 第一季度是从10月22日到21日到1月。 所以我创建了这个函数:(在loadscript中)
if((Month(RetDate)='10' AND Day(RetDate)>21) OR (Month(RetDate) = '11' OR Month(RetDate) = '12') OR (Month(RetDate)='1' AND Day(RetDate)<22),'Q1',
if((Month(RetDate)='1' AND Day(RetDate)>21) OR (Month(RetDate) = '2' OR Month(RetDate) = '3') OR (Month(RetDate)='4' AND Day(RetDate)<22),'Q2',
if((Month(RetDate)='4' AND Day(RetDate)>21) OR (Month(RetDate) = '5' OR Month(RetDate) = '3') OR (Month(RetDate)='6' AND Day(RetDate)<22),'Q3','Q4'))) as Quarter1,
但是这样,例如,23。10。13(2013年10月23日)与2013年第一季度而不是2014年第一季度相关。
谢谢:)
答案 0 :(得分:1)
Ceil(月份(如果(日(RetDate)&lt; 22,RetDate,QuarterStart(RetDate,1)))/ 3)作为季度
所以,如果日期是在22之后我将它向前推四分之一。
答案 1 :(得分:0)
我认为这就是你要找的东西:
LOAD Customer,
RetDate,
if(Month(RetDate)='1',
if(Day(RetDate)<22, 'Q1', 'Q2'),
if(Month(RetDate)='2', 'Q2',
if(Month(RetDate)='3', 'Q2',
if(Month(RetDate)='4',
if(Day(RetDate)<22, 'Q2', 'Q3'),
if(Month(RetDate)='5', 'Q3',
if(Month(RetDate)='6', 'Q3',
if(Month(RetDate)='7',
if(Day(RetDate)<22, 'Q3', 'Q4'),
if(Month(RetDate)='8', 'Q4',
if(Month(RetDate)='9', 'Q4',
if(Month(RetDate)='10',
if(Day(RetDate)<22, 'Q4', 'Q1'),
if(Month(RetDate)='11', 'Q1',
if(Month(RetDate)='12', 'Q1',
'undef' )))))))))))) as Quarter,
INLINE [
Customer, RetDate
A-Mark, 20.10.2013
A-Mark, 21.10.2013
A-Mark, 22.10.2013
A-Mark, 23.10.2013
A-Mark, 24.10.2013
C-Mart, 19.01.2014
C-Mart, 20.01.2014
C-Mart, 21.01.2014
C-Mart, 22.01.2014
]
结果是:
希望有所帮助。