传入参数为year,month
事实表结构为:
year integer,
month integer,
dept_name varchar(100),
imoney number(16,4)
在universe里建一个过滤器,挂在日期对象下(其实挂哪儿无所谓)
内容为:本季度
DIM_DATE.YEAR_S =@prompt('yearcode','A','日期\Year S',Mono,Free,Persistent,,User:0)
AND((@prompt('monthcode','A','日期\Month S',Mono,Free,Persistent,,User:0) in (1,2,3) and (DIM_DATE.MONTH_S >=1 and DIM_DATE.MONTH_S<=3)) or (@prompt('monthcode','A','日期\Month S',Mono,Free,Persistent,,User:0) in (4,5,6) and ( DIM_DATE.MONTH_S >=4 and DIM_DATE.MONTH_S<=6)) or (@prompt('monthcode','A','日期\Month S',Mono,Free,Persistent,,User:0) in (7,8,9) and (DIM_DATE.MONTH_S >=7 and DIM_DATE.MONTH_S<=8)) or (@prompt('monthcode','A','日期\Month S',Mono,Free,Persistent,,User:0) in (10,11,12) and ( DIM_DATE.MONTH_S >=10 and DIM_DATE.MONTH_S<=12)))
解释:用@prompt函数得到传过来的值,然后用三个or 写入4个季度,每个季度里用两个and,确保穿过来的月份在本季度,然后and month在本季度里。
上月:
DIM_DATE.YEAR_S =substr(to_char(add_months(to_date(@prompt('yearcode','A','日期\Year S',Mono,Free,Persistent,,User:0)||-@prompt('monthcode','A','日期\Month S',Mono,Free,Persistent,,User:0),'yyyy-mm'),-1),'yyyy-mm'),1,4)
AND DIM_DATE.MONTH_S =substr(to_char(add_months(to_date(@prompt('yearcode','A','日期\Year S',Mono,Free,Persistent,,User:0)||-@prompt('monthcode','A','日期\Month S',Mono,Free,Persistent,,User:0),'yyyy-mm'),-1),'yyyy-mm'),6,2)