Qlikview脚本生成日历表

浏览: 2469

多数情况下DW会给报表输出一张比较全的标准日历表,如果是这样的情况,那么可以直接从DW中读取,所以我要写的是DW中没有提供并且从事实数据中提取并不完整或者太耗资源的情况,其实是可以通过脚本自动生成一份标准日历表,下面就介绍一下思路。

//定义变量

LET vDateMin = Num(MakeDate(2015,1,1));  //起始时间2015-01-01

LET vDateMax = Floor(MonthEnd(Today())); //结束时间为今天所在月最后一天

LET vDateToday = Num(Today());           //今天变量

 

//定义循环

TempCalendar:

LOAD

  $(vDateMin) + RowNo() - 1 AS DateNumber,

  Date($(vDateMin) + RowNo() - 1) AS TempDate

AUTOGENERATE 1

WHILE $(vDateMin)+IterNo()-1<= $(vDateMax);

//加载日历表

Calendar:

LOAD

    Date(TempDate) AS 标准日期,

  AutoNumber(Year(TempDate)&Month(TempDate)&Day(TempDate)) as 时间KEY,

    // Standard Date Objects

    Day(TempDate) AS 标准日份,

    WeekDay(TempDate) AS 标准星期,

    Week(TempDate) AS 标准周数,

    Month(TempDate) AS 标准月份,

    'Q' & Ceil(Month(TempDate)/3) AS 标准季度,

    Year(TempDate) AS 标准年份

RESIDENT TempCalendar ORDER BY TempDate ASC;

DROP TABLE TempCalendar;

//释放变量

LET vDateMin = Null();

LET vDateMax = Null();

LET vDateToday = Null();

推荐 2
本文由 qjxiaopang 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

1 个评论

日历表很有用。

要回复文章请先登录注册