大家好,
我们在HANA中内置了"WORKDAYS\u-BETWEEN"功能,用于根据组织定制计算两个工作日之间的工作日。
使用该功能的前提条件是,
必须在SAP HANA数据库中提供TFAC。(TFACS表将在SAP模式的sapecc(在HANA上)和BW(在HANA上)系统中可用。否则TFACS表将从SAP ECC系统复制)
例如,bi大数据,像这样的场景,
1。在本机HANA系统中,(TFACS表将不存在)如何计算自定义工作日之间的时间?
2. 我有一张我所在组织的假期表。仅使用此表,我必须计算两个工作日之间的天数。我该怎么办?
这个博客是关于这个的。
我要解释一下我在计算工作日和工作日之间的经验。
我的输入数据是,
我必须计算数量根据公司休假日历,从1月1日到1月31日的工作日
2016年1月公司休假日历:
根据本休假日历,数量从1月1日到1月31日的工作日是20天。
为了计算工作日,什么是大数据概念,根据这个日历,软件企业有哪些,我写了程序。我已经给出了下面的程序片段。
它给了我所需的输出。
程序片段:
[我已经用游标编写了程序]
声明游标游标1为
从"SCHEMA1"中选择开始日期、结束日期。
天数之间;
循环数:=1;
对于光标所在的当前行,执行
V\U总计\U天数\U计数:=介于(当前_行开始日期,当前_行结束日期);
从"SCHEMA1"中选择COUNT(*)进入"V_HOLIDAYS_COUNT"。"T004_HOLIDAY_CALENDAR",其中HOLIDAY_日期介于当前_行开始日期和电流_行结束日期;
从"SCHEMA1"中选择COUNT(*)INTO V\u ENDDATE\u AS\u HOLIDAY."T004\u HOLIDAY\u CALENDAR",其中HOLIDAY\u DATE=CURRENT_行结束日期;
如果V_ENDDATE_AS_HOLIDAY=1,则
V_BUSINESS_DAYS_COUNT:=(V_TOTAL_DAYS_COUNT–V_HOLIDAYS_COUNT)+1;
否则
V_BUSINESS_DAYS_COUNT:=V_TOTAL_DAYS_COUNT–V_HOLIDAYS_COUNT;
如果结束;
开始日期[回路编号]:=当前_行开始日期;
ARR_END_DATE[LOOP_NUM]:=当前_行结束日期;
ARR_BUSINESS_DAYS_COUNT[LOOP_NUM]:=V_BUSINESS_DAYS_COUNT;
LOOP_NUM:=LOOP_NUM+1;
END FOR;
OUTPUT_TABLE=unest(:ARR_START_DATE,数据呈现,:ARR_END_DATE,:ARR_BUSINESS_DAYS_COUNT)
AS("START_DATE","END_DATE",大数据的,"工作日之间");