0

我想创建季度部分但没有天花板功能,因为我每个季度都有特定的日期。第一季度为10月22日至1月21日。所以我创建了这个函数:(在加载脚本中)

 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 (23 OCT.) 与 2013 年第一季度相关,而不是与 2014 年第一季度相关。

谢谢 :)

4

2 回答 2

1

Ceil( 月( If( if(Day(RetDate)<22,RetDate,QuarterStart(RetDate,1)) )/3) 作为季度

因此,如果日期在 22 日之后,我会将其向前推四分之一。

于 2013-12-20T15:16:50.843 回答
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
]

结果是:

在此处输入图像描述

希望有帮助。

于 2013-12-20T08:45:51.157 回答