我有一个要求,其中有2个表,表1 - DateTable和表2 - MyTable。
我正在尝试计算类似于我们在Excel中所做的网络国际日。
注意:我的2张桌子没有连接,因为他们没有钥匙
DateTable在假日列中有假期。
MyTable在SubmittedDate列中有我的约会。
您如何解决这个问题并制定计算网络国际日的措施?
请求的架构:
MyTable
Name RequestID SubmittedDate ExpectedResult
XABI 209874 25/7/2017 3
DateTable
Holidays Day Reason
28/7/2017 Friday blabla
27/7/2017 Thursday blaalala
ExpectedResult是我想要计算的 - 它是3,因为只有3个工作日,即25 / 7,26 / 7,31 / 7(今天)。
28/7和27/7是公司假期,29 / 7,30 / 7是周末假期。
请分享您的想法。
答案 0 :(得分:0)
holidays
表(示例中为DateTable
):
date
2017-01-02
calendar
表(介绍):
date
2017-01-01
2017-01-02
2017-01-03
2017-01-04
2017-01-05
2017-01-06
2017-01-07
...
data
表(示例中为MyTable
):
date
2017-01-01
2017-01-03
将计算列添加到calendar
表:
isworkingday =
var isweekend = if(WEEKDAY(calendar[date])>5, 1, 0)
var isholiday = if(CONTAINS(holidays, holidays[date], calendar[date]), 1, 0)
return if(AND(isweekend=0, isholiday=0), 1, 0)
将计算列添加到data
表:
workingDaysPassed =
var curr = data[date]
return calculate(sum(calendar[isworkingday]),
and(calendar[date]>=curr,
calendar[date]<=today()),
all(data))
workingDaysPassed
应该是您的ExpectedResult
,只要您填充calendar
表:
date, isworkingday, workingDaysPassed
2017-01-01, 1, 4
2017-01-02, 0, 3
2017-01-03, 1, 3
2017-01-04, 1, 2
2017-01-05, 1, 1
2017-01-06, 0, 0
2017-01-07, 0, 0